개요
데이터베이스를 Cloud SQL로 마이그레이션하기 전에 이 마이그레이션 시나리오의 알려진 제한사항을 고려해야 합니다.
PostgreSQL 데이터베이스를 소스로 사용할 경우의 알려진 제한사항은 다음과 같습니다.
pglogical
확장 프로그램은 PostgreSQL 12 이상에서 생성된 열의 복제를 지원하지 않습니다.테이블 구조 (DDL) 변경사항은 표준 DDL 명령어를 통해 복제되지 않으며, 복제에 사용되는
pglogical
확장자를 사용하여 실행된 명령어로만 복제됩니다.예를 들어
pglogical
는 일관된 지점에서 소스 데이터베이스와 복제본 모두에서 DDL을 실행할 수 있는 함수pglogical.replicate_ddl_command
를 제공합니다. 소스에서 이 명령어를 실행하는 사용자는 이미 복제본에 있어야 합니다.새 테이블의 데이터를 복제하려면
pglogical.replication_set_add_table
명령어를 사용하여 새 테이블을 기존 복제 세트에 추가해야 합니다.이전이 진행되는 동안 DDL 복제에 대해 자세히 알아보려면 이전 충실도 섹션을 참고하세요.
기본 키가 없는 테이블의 경우 Database Migration Service는 변경 데이터 캡처 (CDC) 단계 중에 초기 스냅샷과
INSERT
문의 마이그레이션을 지원합니다.UPDATE
및DELETE
문은 수동으로 마이그레이션해야 합니다.Database Migration Service는 구체화된 뷰의 데이터가 아닌 뷰 스키마만 마이그레이션합니다. 뷰를 채우려면
REFRESH MATERIALIZED VIEW view_name
명령어를 실행합니다.새 Cloud SQL 대상의
SEQUENCE
상태 (예:last_value
)는 소스SEQUENCE
상태와 다를 수 있습니다.UNLOGGED
및TEMPORARY
테이블은 복제되지 않으며 복제할 수 없습니다.대규모 객체 데이터 유형은 지원되지 않습니다. 자세한 내용은 이전 충실도 섹션을 참고하세요.
Cloud SQL에서 PostgreSQL용으로 지원하는 확장 프로그램 및 절차적 언어만 이전할 수 있습니다. Database Migration Service는 Cloud SQL에서 지원하지 않는 확장 프로그램을 마이그레이션하지 않습니다. 이러한 확장 프로그램이 있더라도 마이그레이션이 차단되지는 않지만 원활한 마이그레이션 프로세스를 위해 객체나 애플리케이션이 지원되지 않는 확장 프로그램을 참조하지 않는지 확인합니다. 계속하기 전에 소스 데이터베이스에서 이러한 확장 프로그램과 참조를 삭제하는 것이 좋습니다.
pg_cron
확장 프로그램 (또는 확장 프로그램과 연결된cron
설정)은 Database Migration Service에서 마이그레이션되지 않지만 PostgreSQL용 Cloud SQL 대상에서는 지원됩니다. 소스 데이터베이스에서pg_cron
확장 프로그램을 사용하는 경우 이전이 완료된 후 대상 인스턴스에 다시 설치할 수 있습니다.
Database Migration Service는 복구 모드인 읽기 복제본에서의 마이그레이션을 지원하지 않습니다.
Database Migration Service는 AWS SCT 확장 프로그램 팩이 적용된 Amazon RDS 소스를 지원하지 않습니다.
- C로 작성된 사용자 정의 함수는 마이그레이션할 수 없습니다. 단, Cloud SQL에서 지원하는 확장 프로그램을 설치할 때 PostgreSQL 데이터베이스에 설치되는 함수는 예외입니다.
소스 데이터베이스에 다른 확장 프로그램과 프로시저럴 언어가 있거나 버전이 지원되지 않는 경우 마이그레이션 작업을 테스트하거나 시작하면 실패합니다.
마이그레이션 작업이 시작된 후에 추가된 데이터베이스는 마이그레이션되지 않습니다.
- Database Migration Service를 사용하여 이전할 때는 특정 테이블이나 스키마를 선택할 수 없습니다.
Database Migration Service는 다음을 제외한 모든 테이블과 스키마를 마이그레이션합니다.
- 정보 스키마 (
information_schema
) pg
로 시작하는 모든 테이블(예:pg_catalog
)pg
로 시작하는 PostgreSQL 카탈로그의 전체 목록은 PostgreSQL 문서의 PostgreSQL 시스템 카탈로그를 참고하세요.- 사용자 및 사용자 역할에 관한 정보가 이전되지 않았습니다.
- 정보 스키마 (
암호화된 데이터베이스를 복호화하는 데 고객 관리 암호화 키가 필요한 경우, 그리고 Database Migration Service에서 키에 액세스할 수 없는 경우 데이터베이스를 마이그레이션할 수 없습니다.
하지만 고객 데이터가
pgcrypto
확장 프로그램으로 암호화된 경우 Cloud SQL에서 확장 프로그램을 지원하므로 Database Migration Service를 사용하여 데이터를 마이그레이션할 수 있습니다.Database Migration Service는 암호화된 Amazon Aurora 또는 Amazon RDS 데이터베이스에서 데이터를 마이그레이션하는 것도 지원합니다. 이러한 데이터베이스는 서비스에서 암호화 해제를 투명하게 처리하기 때문입니다. 자세한 내용은 Amazon Aurora 리소스 암호화 및 Amazon RDS 리소스 암호화를 참고하세요.
필요한 경우 DDL 변경사항을 적용할 수 있도록 마이그레이션 중에 대상 Cloud SQL 데이터베이스를 쓸 수 있습니다. 마이그레이션 프로세스를 중단하거나 데이터 무결성에 영향을 줄 수 있는 데이터베이스 구성 또는 테이블 구조를 변경하지 않도록 주의하세요.
트리거 동작은 구성된 방식에 따라 다릅니다. 기본 동작은 트리거되지 않지만
ALTER EVENT TRIGGER
또는ALTER TABLE
문을 사용하여 구성되었고 트리거 상태가 replica 또는 always로 설정된 경우 복제 중에 복제본에서 트리거됩니다.보안 정의자가 있는 함수는 Cloud SQL 복제본에서
cloudsqlexternalsync
에 의해 생성됩니다. 사용자가 실행하면cloudsqlsuperuser
및cloudsqlreplica
역할을 가진cloudsqlexternalsync
의 권한으로 실행됩니다. 보안 정의자 함수의 사용을 일부 사용자로 제한하는 것이 좋습니다. 이렇게 하려면 사용자가 기본 PUBLIC 권한을 취소한 다음 실행 권한을 선택적으로 부여해야 합니다.Cloud SQL은 맞춤설정된 테이블스페이스를 지원하지 않습니다. 맞춤설정된 테이블스페이스 내의 모든 데이터가 Cloud SQL 대상 인스턴스의
pg_default
테이블스페이스로 마이그레이션됩니다.
기존 대상 인스턴스로의 이전 제한사항
- 기존 대상 인스턴스는 비어 있거나 시스템 구성 데이터만 포함해야 합니다. 사용자 데이터 (예: 테이블)가 포함된 기존 대상 인스턴스로 이전하는 것은 지원되지 않습니다.
기존 대상 인스턴스에 추가 데이터로 인해 문제가 발생하면 대상 인스턴스의 데이터베이스를 삭제하고 마이그레이션 작업을 다시 시도합니다. 기존 대상 인스턴스에서 추가 데이터 지우기를 참고하세요.
- 대상 인스턴스당 하나의 마이그레이션 작업만 구성할 수 있습니다.
- 독립형 Cloud SQL 인스턴스로만 이전할 수 있습니다. 외부 서버 복제본으로의 이전은 지원되지 않습니다.
- Private Service Connect가 사용 설정된 Cloud SQL 인스턴스로는 데이터를 마이그레이션할 수 없습니다.
- 인스턴스를 승격한 후에는 PITR(특정 시점 복구)을 사용 설정해야 합니다.
- 인스턴스에 맞춤설정된 백업 설정 (예: 커스텀 백업 위치)이 있으면 인스턴스를 승격한 후 백업 설정을 다시 맞춤설정해야 합니다. 승격 프로세스가 진행되는 동안 Cloud SQL에서 백업 설정을 기본값으로 재설정합니다.
- Terraform 사용자: Database Migration Service가 대상 인스턴스의 백업 및 복구 설정을 수정합니다. 이로 인해 대상 인스턴스 설정이 프로비저닝에 사용된 Terraform 구성과 다를 수 있습니다. 이 문제가 발생하면 문제 진단의 안내를 따르세요.
할당량
- 어느 시점에든지 최대 2,000개의 연결 프로필과 1,000개의 마이그레이션 작업이 존재할 수 있습니다. 더 많은 항목을 위한 여유 공간을 확보하려면 마이그레이션 작업 (완료된 작업 포함) 및 연결 프로필을 삭제할 수 있습니다.