Cloud SQL로의 동종 PostgreSQL 마이그레이션의 경우 Database Migration Service는 대상 PostgreSQL용 Cloud SQL 인스턴스에 연결하고 대신 연속 마이그레이션 프로세스를 관리합니다. 대상 인스턴스는 소스 데이터베이스에 대한 연결을 설정하고 Database Migration Service는 엔드 투 엔드 데이터 파이프라인을 조정하고 모니터링합니다.
Cloud SQL로의 표준 동종 PostgreSQL 마이그레이션의 경우 Database Migration Service는 지속적 마이그레이션을 지원합니다.
연속 마이그레이션에서는 초기 데이터가 스냅샷 덤프에서 로드된 후 논리적 디코딩과 pglogical 확장 프로그램을 사용하여 소스 데이터베이스의 미리 쓰기 로그 (WAL)에서 지속적인 데이터 변경사항이 지속적으로 복제됩니다.
연속
빠른 시작 마이그레이션의 경우 Database Migration Service는 pgnative를 사용합니다.
지속적인 이전 단계
연속 마이그레이션은 다음 순차적 단계를 거쳐 진행됩니다.
표준 이전
-
복제 설정 및 조정: 마이그레이션 작업을 만들 때 Database Migration Service는 PostgreSQL용 대상 Cloud SQL 인스턴스를 복제본으로 작동하도록 구성하고
pglogical확장 프로그램으로 복제 구독을 설정합니다. 기존 Cloud SQL 인스턴스로 마이그레이션할 때 Database Migration Service는 인스턴스를 외부 복제본으로 구성하도록 강등합니다 (데이터베이스를 읽기 전용 모드로 전환하지 않음). - 초기 스냅샷 단계: 마이그레이션 작업을 시작하면 Database Migration Service가 소스 인스턴스에서 선택한 데이터베이스의 일관된 스냅샷을 생성합니다. 이 프로세스는 스냅샷이 초기화되는 동안 간단한 테이블 잠금 (일반적으로 테이블당 10초 미만)을 수행합니다. 소스 데이터베이스는 프로세스 전반에서 읽기 및 쓰기를 계속 허용합니다.
- 데이터 로드 단계: Database Migration Service는 소스 데이터베이스에서 초기 스냅샷 데이터를 스트리밍하고 이를 대상 PostgreSQL용 Cloud SQL 인스턴스에 로드합니다.
- 제약 조건 및 색인 생성: 초기 데이터 로드가 완료되면 대상 인스턴스에 테이블 제약 조건 (기본 키 및 외래 키 포함)과 보조 색인이 생성됩니다. 데이터 로드를 제약 조건 생성과 분리하면 데이터 수집 속도가 최적화됩니다.
-
변경 데이터 캡처 (CDC) 단계: 제약조건이 적용되면 Database Migration Service가 연속 CDC 단계로 전환됩니다. CDC 중에 Database Migration Service는
pglogical를 사용하여 소스 데이터베이스의 논리적 복제 스트림에서 진행 중인 DML 변경사항을 캡처하고 거의 실시간으로 대상 인스턴스에 적용합니다. - 컷오버 및 승격 단계: 애플리케이션 트래픽을 대상 인스턴스로 전환할 준비가 되면 소스 데이터베이스에 대한 쓰기를 중지하고 복제 지연이 0에 도달하는지 확인한 후 Database Migration Service에서 승격을 시작합니다. 승격 중에 Database Migration Service는 소스에서 대상 인스턴스를 연결 해제하고, 복제 슬롯을 삭제하고, 대상을 독립형 읽기/쓰기 PostgreSQL용 Cloud SQL 기본 인스턴스로 변환합니다.
빠른 시작 이전
-
복제 설정 및 조정: 마이그레이션 작업을 만들면 Database Migration Service가 Private Service Connect 인터페이스를 사용하여 비공개 IP를 통해 네트워크 연결을 자동으로 설정합니다 (비공개 연결 구성, 네트워크 연결, 서브넷 자동 생성). 소스에
pglogical확장 프로그램을 설치하거나 대상 인스턴스를 강등하지 않고도 PostgreSQL 논리적 복제(pgnative사용)를 사용하여 소스 데이터베이스와 대상 데이터베이스 간에 복제를 설정합니다. 대상은 다른 데이터베이스에 트래픽을 제공하는 활성 인스턴스일 수 있습니다. - 초기 스냅샷 단계: 마이그레이션 작업을 시작하면 Database Migration Service가 소스 데이터베이스 서버에서 선택한 데이터베이스(작업당 최대 50개 데이터베이스 마이그레이션)의 일관된 스냅샷을 생성합니다. 소스 데이터베이스는 프로세스 전반에서 읽기 및 쓰기를 계속 허용합니다.
- 데이터 로드 단계: Database Migration Service는 비공개 연결을 통해 초기 스냅샷 데이터를 대상 PostgreSQL용 Cloud SQL 인스턴스로 직접 스트리밍합니다. 대상 데이터베이스 객체는 Database Migration Service에서 생성하거나 ( Google Cloud 콘솔을 사용하는 경우) Google Cloud CLI로 지정한 마이그레이션 사용자에게 소유권이 할당됩니다.
- 제약 조건 및 색인 생성: 초기 데이터 로드가 완료되면 스키마 충실도를 보장하면서 수집 성능을 극대화하기 위해 대상 인스턴스에 테이블 제약 조건과 보조 색인이 생성됩니다.
-
변경 데이터 캡처 (CDC) 단계: 제약조건이 적용되면 Database Migration Service가 연속 CDC 단계로 전환됩니다. CDC 중에 Database Migration Service는
pgnativePostgreSQL 논리적 복제 스트림에서 진행 중인 DML 변경사항을 스트리밍하고 거의 실시간으로 대상 인스턴스에 적용합니다. 기본 키가 없는 테이블의 경우 테이블의 복제본 ID가INDEX또는FULL로 구성되면UPDATE및DELETE작업을 복제할 수 있습니다. - 컷오버 및 승격 단계: 애플리케이션 트래픽을 대상 인스턴스로 전환할 준비가 되면 소스 데이터베이스에 대한 쓰기를 중지하고 복제 지연이 0에 도달하는지 확인한 후 Database Migration Service에서 승격을 시작합니다. 승격 중에 Database Migration Service는 CDC 복제를 완료하고 복제 슬롯을 종료하고 마이그레이션 파이프라인을 분리하여 클라이언트 연결을 위해 PostgreSQL용 대상 Cloud SQL 데이터베이스를 완전히 작동 상태로 유지합니다.
다음 단계
Database Migration Service의 PostgreSQL 데이터 및 기능 지원에 대한 자세한 내용은 알려진 제한사항을 참조하세요.
전체 단계별 마이그레이션 둘러보기를 보려면 PostgreSQL용 Cloud SQL 마이그레이션 시작하기를 참조하세요.