- Database Migration Service란 무엇인가요?
- 어떤 소스가 지원되나요?
- 어떤 대상이 지원되나요?
- 교차 버전 지원이 있나요?
- 어떤 데이터, 스키마, 메타데이터 구성요소가 이전되나요?
- 연속 마이그레이션 중 복제되는 변경사항
- 이전되지 않는 항목
- 어떤 네트워킹 방법이 사용되나요?
- 알려진 제한사항은 무엇인가요?
- Database Migration Service란 무엇인가요?
- Database Migration Service는 데이터를 Google Cloud로 더 쉽게 마이그레이션할 수 있는 서비스입니다. Database Migration Service를 사용하면 PostgreSQL 워크로드를 Cloud SQL로 리프트 앤 시프트할 수 있습니다.
- 어떤 소스가 지원되나요?
-
- Amazon RDS 9.6.10 이상, 10.5 이상, 11.1 이상, 12, 13, 14, 15, 16, 17
- Amazon Aurora 10.11 이상, 11.6 이상, 12.4 이상, 13.3 이상, 14.6 이상, 15.2 이상, 16, 17
- 자체 관리형 PostgreSQL (온프레미스 또는 완전히 제어하는 모든 Cloud VM) 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16, 17
- PostgreSQL용 Cloud SQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17
- PostgreSQL용 Microsoft Azure Database Flexible Server: 11 이상
- 어떤 대상이 지원되나요?
-
- PostgreSQL용 Cloud SQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17
- 교차 버전 지원이 있나요?
- Database Migration Service는 대상이 소스 데이터베이스와 동일하거나 더 높은 버전인 경우 모든 주요 버전에서 PostgreSQL-to-Cloud SQL 마이그레이션을 지원합니다.
- 어떤 데이터, 스키마, 메타데이터 구성요소가 이전되나요?
- Database Migration Service는 스키마, 데이터, 메타데이터를 소스에서 대상으로 마이그레이션합니다. 다음 데이터, 스키마, 메타데이터 구성요소가 모두 데이터베이스 마이그레이션의 일부로 마이그레이션됩니다.
데이터 이전
- 선택한 데이터베이스의 모든 스키마 및 모든 테이블
- 이름 지정
- 기본 키
- 데이터 유형
- 서수 순위
- 기본값
- null 허용 여부
- 자동 증가 속성
- 보조 색인
- 저장 프로시저
- 함수
- 트리거
- 뷰
- 외래 키 제약조건
- 연속 마이그레이션 중 복제되는 변경사항은 무엇인가요?
-
마이그레이션 중에 DML 변경사항만 자동으로 업데이트됩니다. 소스 및 대상 데이터베이스가 계속 호환되도록 DDL을 관리하는 것은 사용자의 책임이며 다음 두 가지 방법으로 할 수 있습니다.
- 소스 쓰기를 중지하고 소스 및 대상 모두에서 DDL 명령어를 실행합니다. 대상에서 DDL 명령어를 실행하기 전에 DDL 변경사항을 적용하는 Cloud SQL 사용자에게
cloudsqlexternalsync
역할을 부여합니다. 데이터 쿼리 또는 변경을 사용 설정하려면 관련 Cloud SQL 사용자에게cloudsqlexternalsync
역할을 부여합니다. pglogical.replicate_ddl_command
를 사용하여 소스 및 대상의 일관된 지점에서 DDL을 실행합니다. 이 명령어를 실행하는 사용자는 소스와 대상 모두에서 동일한 사용자 이름을 사용해야 하며, 마이그레이션되는 아티팩트 (예: 테이블, 시퀀스, 뷰 또는 데이터베이스)의 슈퍼 사용자 또는 소유자여야 합니다.다음은
pglogical.replicate_ddl_command
사용의 몇 가지 예입니다.데이터베이스 테이블에 열을 추가하려면 다음 명령어를 실행합니다.
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
데이터베이스 테이블의 이름을 변경하려면 다음 명령어를 실행합니다.
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');
데이터베이스 테이블을 만들려면 다음 명령어를 실행합니다.
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);
select pglogical.replication_set_add_table('default', '[schema].[table]');
- 소스 쓰기를 중지하고 소스 및 대상 모두에서 DDL 명령어를 실행합니다. 대상에서 DDL 명령어를 실행하기 전에 DDL 변경사항을 적용하는 Cloud SQL 사용자에게
- 이전되지 않는 항목
-
Cloud SQL 대상 인스턴스에 사용자를 추가하려면 인스턴스로 이동하여 사용자 탭에서 사용자를 추가하거나 PostgreSQL 클라이언트에서 사용자를 추가합니다. PostgreSQL 사용자 만들기 및 관리에 대해 자세히 알아보세요.
PostgreSQL의 논리적 디코딩 기능이 대규모 객체의 변경사항 디코딩을 지원하지 않으므로 대규모 객체는 복제할 수 없습니다. 대용량 객체를 참조하는 열 유형 oid가 있는 테이블의 경우 행은 계속 동기화되고 새 행은 복제됩니다. 그러나 대상 데이터베이스의 대형 객체에 액세스하려고 하면(lo_get을 사용하여 읽거나 lo_export를 사용하여 내보내거나 지정된 oid의 카탈로그
pg_largeobject
를 확인) 대형 객체가 존재하지 않는다는 메시지와 함께 실패합니다.기본 키가 없는 테이블의 경우 Database Migration Service는 변경 데이터 캡처 (CDC) 단계 중에 초기 스냅샷과
INSERT
문의 마이그레이션을 지원합니다.UPDATE
및DELETE
문은 수동으로 마이그레이션해야 합니다.Database Migration Service는 구체화된 뷰의 데이터가 아닌 뷰 스키마만 마이그레이션합니다. 뷰를 채우려면
REFRESH MATERIALIZED VIEW view_name
명령어를 실행합니다.새 Cloud SQL 대상의
SEQUENCE
상태 (예:last_value
)는 소스SEQUENCE
상태와 다를 수 있습니다. - 어떤 네트워킹 방법이 사용되나요?
- Database Migration Service에서 마이그레이션을 만들려면 소스와 Cloud SQL 대상 인스턴스 간에 연결을 설정해야 합니다. 다양한 메서드가 지원됩니다.
특정 워크로드에 가장 적합한 방법을 선택합니다.
네트워킹 방법 설명 장점 단점 IP 허용 목록 Cloud SQL 인스턴스의 공개 IP 주소에서 들어오는 연결을 허용하도록 소스 데이터베이스 서버를 구성하여 작동합니다. 이 방법을 선택하면 Database Migration Service에서 마이그레이션 생성 중에 설정 프로세스를 안내합니다. - 손쉬운 구성
- 단기적인 마이그레이션 시나리오 (POC 또는 소규모 데이터베이스 이전)에 권장됩니다.
- 방화벽을 구성하려면 IT의 지원이 필요할 수 있습니다.
- 소스 데이터베이스를 공개 IP에 노출합니다.
- 기본적으로 연결은 암호화되지 않습니다. 연결을 암호화하려면 소스 데이터베이스에서 SSL을 사용 설정해야 합니다.
클라우드 호스팅 VM을 통한 역방향 SSH 터널 보안 역방향 SSH 터널을 통해 대상에서 소스로의 연결을 설정합니다. Google Cloud 프로젝트에 방어 호스트 VM과 소스에 연결된 머신(예: 네트워크의 노트북)이 필요합니다. Database Migration Service는 이전 생성 시 필요한 정보를 수집하고 설정 스크립트를 자동으로 생성합니다. - 손쉬운 구성
- 맞춤 방화벽 구성이 필요하지 않습니다.
- 단기적인 마이그레이션 시나리오 (POC 또는 소규모 데이터베이스 마이그레이션)에 권장됩니다.
- 배스천 VM을 소유하고 관리합니다.
- 추가 비용이 발생할 수 있습니다.
VPC 피어링 이 방법은 VPC가 서로 통신하도록 구성하는 방식으로 작동합니다. 소스와 대상이 모두 Google Cloud에 호스팅된 경우에만 적용됩니다. 장기 실행 또는 대규모 마이그레이션에 권장됩니다. - Google Cloud 솔루션을 사용합니다.
- 손쉬운 구성
- 고대역폭
소스가 Google Cloud에 호스팅된 경우에만 사용할 수 있습니다. VPN 공용 인터넷을 통한 보안 연결을 통해 내부 네트워크와 Google Cloud VPC를 연결하는 IPSec VPN 터널을 설정합니다. Google Cloud VPN 또는 내부 네트워크에 설정된 VPN 솔루션을 사용합니다. - 강력하고 확장 가능한 연결 솔루션입니다.
- 중간에서 높은 대역폭
- 보안 기능 기본 제공
- Google Cloud 솔루션으로 제공되거나 다른 서드 파티에서 제공합니다.
- 추가 비용
- 간단하지 않은 구성 (이미 적용된 경우 제외)
Cloud Interconnect 온프레미스 네트워크와 Google Cloud간에 가용성이 높고 지연 시간이 짧은 연결을 사용합니다. 대역폭이 가장 높으며 장기적으로 대규모 마이그레이션을 실행하는 데 적합합니다. - 추가 비용
- 기본적으로 연결은 안전하지 않습니다.
- 간단하지 않은 구성 (이미 적용된 경우 제외)
- 알려진 제한사항은 무엇인가요?
- 알려진 제한사항을 참고하세요.