이 페이지에서는 PostgreSQL용 AlloyDB 클러스터로의 연속 동종 PostgreSQL 마이그레이션을 위해 소스 데이터베이스 인스턴스를 구성하는 방법을 설명합니다.
지원되는 소스 버전에 대한 자세한 내용은
지원되는 소스 및 대상 데이터베이스를 참조하세요.
빠른 시작 마이그레이션을 사용하려면
빠른 시작 마이그레이션 사용 가이드를 따르세요.
빠른 시작 마이그레이션은 pgnative 복제와 Private Service Connect 인터페이스를 기반으로 하는 특수한 연결을 사용하는 간소화된 마이그레이션 흐름을 제공합니다. 자세한 내용은 기본 Database Migration Service 문서의
빠른 시작 마이그레이션 정보를 참조하세요.
이 페이지에는 지원되는 모든 소스에 대한 독립형 절차가 포함되어 있습니다.
- 자체 관리형 PostgreSQL (온프레미스 또는 Compute Engine VM)
- PostgreSQL용 Amazon RDS
- PostgreSQL용 Amazon Aurora
- PostgreSQL용 Cloud SQL
자체 호스팅 PostgreSQL 소스 구성
연속 마이그레이션을 위해 자체 호스팅 PostgreSQL 소스 인스턴스 (온프레미스 또는 Compute Engine VM에 호스팅됨)를 구성하려면 다음 단계를 완료하세요.
- 자체 호스팅 PostgreSQL 소스의 경우 Database Migration Service는 템플릿 데이터베이스
template0및template1를 제외한 소스 인스턴스의 모든 데이터베이스를 마이그레이션합니다. - 소스 인스턴스에 기본
postgres데이터베이스가 포함되어 있는지 확인합니다. 이 데이터베이스가 없으면 마이그레이션을 구성하기 전에 만듭니다. pg_hba.conf파일에서 네트워크 클라이언트 인증을 구성합니다. 대상 PostgreSQL용 AlloyDB 클러스터 IP 주소 범위, VPC CIDR 범위 또는 역방향 SSH 배스천 호스트에서 복제 연결 및 데이터베이스 액세스를 허용하는 항목을 추가합니다.# Allow replication connections host replication MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5 # Allow database access host all MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5
PostgreSQL 구성을 새로고침하여
pg_hba.conf규칙을 적용합니다.SELECT pg_reload_conf();
- 소스 데이터베이스에 설치된 PostgreSQL 확장 프로그램을 확인합니다.
Database Migration Service는 PostgreSQL용 AlloyDB에서 지원되지 않는 확장 프로그램을 마이그레이션하지 않습니다.
소스 데이터베이스 객체 및 애플리케이션 쿼리가 지원되지 않는 확장 프로그램을 참조하지 않는지 확인합니다.
계속하기 전에 소스 데이터베이스에서 지원되지 않는 확장 프로그램과 참조를 삭제하세요.
pg_cron확장 프로그램은 Database Migration Service에서 자동으로 마이그레이션되지 않지만 PostgreSQL용 AlloyDB 대상에서 지원됩니다. 소스 데이터베이스에서pg_cron를 사용하는 경우 마이그레이션을 승격한 후 대상 PostgreSQL용 AlloyDB 클러스터에 다시 설치하고 구성합니다. - 소스 인스턴스에 전용 마이그레이션 사용자 계정을 만들고 필요한 권한을 부여합니다.
- 관리 계정을 사용하여 소스 인스턴스에 연결하고 사용자를 만들고 복제 역할을 할당합니다.
CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH REPLICATION;
- 마이그레이션 사용자 계정에 기본
postgres데이터베이스와 마이그레이션할 모든 데이터베이스에 필요한 권한을 부여합니다. 정보 스키마와pg_로 시작하는 스키마를 제외한 각 스키마의 각 데이터베이스에서 다음 명령어를 실행합니다.GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- 관리 계정을 사용하여 소스 인스턴스에 연결하고 사용자를 만들고 복제 역할을 할당합니다.
template0및template1를 제외하고 마이그레이션할 각 데이터베이스에pglogical확장 프로그램을 설치합니다.- PostgreSQL 버전 9.4: 다음 명령어를 실행합니다.
CREATE EXTENSION IF NOT EXISTS pglogical; CREATE EXTENSION IF NOT EXISTS pglogical_origin;
- PostgreSQL 버전 9.5 이상: 다음 명령어를 실행합니다.
CREATE EXTENSION IF NOT EXISTS pglogical;
- PostgreSQL 버전 9.4: 다음 명령어를 실행합니다.
- 테이블에 기본 키가 있는지 확인합니다. 연속 마이그레이션의 경우 PostgreSQL 논리적 복제를 수행하려면 변경 데이터 캡처 (CDC) 단계에서
UPDATE및DELETE작업을 복제하기 위해 테이블에 기본 키가 있어야 합니다.- 기본 키가 있는 테이블은 모든
INSERT,UPDATE,DELETE작업을 자동으로 복제합니다. - 기본 키가 없는 테이블의 경우 Database Migration Service는 CDC 단계 중에 초기 스냅샷과 후속
INSERT문의 마이그레이션만 지원합니다.UPDATE및DELETE문은 수동으로 마이그레이션해야 합니다.마이그레이션을 시작하기 전에 기본 키가 없는 테이블에 기본 키를 추가하는 것이 좋습니다. 기본 키 없이 PostgreSQL 데이터베이스의 테이블을 나열하는 쿼리를 생성하는 방법 또는
UPDATE및DELETE작업을 수동으로 마이그레이션하는 방법은 디버깅 및 기타 도구를 참조하세요.또는
REPLICA IDENTITY를 사용하여 기본 키가 없는 테이블을 마이그레이션할 수 있는 간소화된 마이그레이션 시나리오인 빠른 시작 마이그레이션 흐름을 사용할 수 있습니다. 자세한 내용은 빠른 시작 마이그레이션 사용 가이드를 참조하세요.
- 기본 키가 있는 테이블은 모든
- PostgreSQL 버전 9.5 이하를 실행하는 소스: 9.6 이전의 PostgreSQL 버전을 실행하는 소스 인스턴스에는 복제 지연 측정항목을 사용할 수 없습니다. 이 측정항목을 사용하여 마이그레이션 진행 상황을 추적하려면 복제 지연 사용 설정을 참조하세요.
pglogical패키지를 설치하고 PostgreSQL 서버에서 WAL 및 복제 매개변수를 구성합니다.- 데이터베이스 서버 호스트 운영체제에
pglogical패키지를 설치합니다. 배포판의 패키지 및 설치 안내는 pglogical GitHub 저장소를 참조하세요. - 관리 계정을 사용하여 PostgreSQL 인스턴스에 연결하고 다음 매개변수를 설정합니다.
shared_preload_libraries를'pglogical'를 포함하도록 설정합니다.ALTER SYSTEM SET shared_preload_libraries = 'pglogical';
wal_level를'logical'로 설정합니다.ALTER SYSTEM SET wal_level = 'logical';
PostgreSQL 문서의
wal_level를 참조하세요.wal_sender_timeout를0로 설정합니다.ALTER SYSTEM SET wal_sender_timeout = 0;
0값은 비활성 복제 연결을 종료하는 제한 시간 메커니즘을 중지합니다.wal_sender_timeout을 참조하세요.max_replication_slots를 최소한 마이그레이션할 데이터베이스 수에 마이그레이션 작업 수를 곱한 값에 테이블 동기화를 위한 비축분을 더한 값으로 설정합니다.예를 들어 소스 인스턴스에 5개의 데이터베이스가 있고 해당 소스에 대해 2개의 마이그레이션 작업을 만드는 경우 복제 슬롯 수는 5 * 2 = 10개 이상을 이미 소스에서 다른 태스크에 사용 중인 복제 슬롯 수와 합한 값이어야 합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 복제 슬롯 수를 늘리고 구성을 확인해야 합니다.
ALTER SYSTEM SET max_replication_slots = MAX_REPLICATION_SLOTS;
이 매개변수의 기본값은 10입니다.
max_replication_slots을 참고하세요.max_wal_senders를 최소한max_replication_slots값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 설정합니다.예를 들어
max_replication_slots파라미터가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는 10+2 = 12개입니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 발신자 수를 늘리고 구성을 확인해야 합니다.ALTER SYSTEM SET max_wal_senders = MAX_WAL_SENDERS;
이 매개변수의 기본값은 10입니다.
max_wal_senders을 참고하세요.max_worker_processes를 마이그레이션할 데이터베이스 수에 인스턴스의 기존 작업자 프로세스를 더한 값 이상으로 설정합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 연결당 추가 작업자 프로세스 2개(최대 작업자 20개)를 고려하세요.ALTER SYSTEM SET max_worker_processes = MAX_WORKER_PROCESSES;
이 매개변수의 기본값은 8입니다.
max_worker_processes을 참고하세요.
- 데이터베이스 서버 호스트 운영체제에
- 구성 변경사항이 적용되도록 PostgreSQL 서버를 다시 시작합니다.
PostgreSQL용 Amazon RDS 소스 구성
지속적 마이그레이션을 위해 PostgreSQL용 Amazon RDS 소스 인스턴스를 구성하려면 다음 단계를 완료합니다.
- PostgreSQL용 Amazon RDS 소스의 경우 Database Migration Service는 템플릿 데이터베이스
template0,template1, AWS 내부 데이터베이스rdsadmin를 제외한 소스 인스턴스의 모든 데이터베이스를 마이그레이션합니다. - 소스 인스턴스에 기본
postgres데이터베이스가 포함되어 있는지 확인합니다. 이 데이터베이스가 없으면 마이그레이션을 구성하기 전에 만듭니다. - Amazon RDS VPC 보안 그룹 인바운드 규칙을 구성합니다.
대상 PostgreSQL용 AlloyDB 클러스터 IP 주소 범위, VPC CIDR 범위 또는 역방향 SSH 배스천 호스트 VM에서 포트
5432의 수신 TCP 연결을 허용합니다. - 소스 데이터베이스에 설치된 PostgreSQL 확장 프로그램을 확인합니다.
Database Migration Service는 PostgreSQL용 AlloyDB에서 지원되지 않는 확장 프로그램을 마이그레이션하지 않습니다.
소스 데이터베이스 객체 및 애플리케이션 쿼리가 지원되지 않는 확장 프로그램을 참조하지 않는지 확인합니다.
계속하기 전에 소스 데이터베이스에서 지원되지 않는 확장 프로그램과 참조를 삭제하세요.
pg_cron확장 프로그램은 Database Migration Service에서 자동으로 마이그레이션되지 않지만 PostgreSQL용 AlloyDB 대상에서 지원됩니다. 소스 데이터베이스에서pg_cron를 사용하는 경우 마이그레이션을 승격한 후 대상 PostgreSQL용 AlloyDB 클러스터에 다시 설치하고 구성합니다. - 소스 인스턴스에 전용 마이그레이션 사용자 계정을 만들고 필요한 권한을 부여합니다.
- 관리 계정을 사용하여 소스 인스턴스에 연결하고 사용자를 만들고 AWS 관리형
rds_replication역할을 부여합니다.CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- 마이그레이션 사용자 계정에 기본
postgres데이터베이스와 마이그레이션할 모든 데이터베이스에 필요한 권한을 부여합니다. 정보 스키마와pg_로 시작하는 스키마를 제외한 각 스키마의 각 데이터베이스에서 다음 명령어를 실행합니다.GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- 관리 계정을 사용하여 소스 인스턴스에 연결하고 사용자를 만들고 AWS 관리형
template0,template1,rdsadmin를 제외하고 마이그레이션할 각 데이터베이스에pglogical확장 프로그램을 설치합니다. 다음 명령어를 실행합니다.CREATE EXTENSION IF NOT EXISTS pglogical;
요구사항에 대한 자세한 내용은 AWS 문서의 PostgreSQL용 Amazon RDS에서 PostgreSQL 확장 프로그램 사용을 참조하세요.
- 테이블에 기본 키가 있는지 확인합니다. 연속 마이그레이션의 경우 PostgreSQL 논리적 복제를 수행하려면 변경 데이터 캡처 (CDC) 단계에서
UPDATE및DELETE작업을 복제하기 위해 테이블에 기본 키가 있어야 합니다.- 기본 키가 있는 테이블은 모든
INSERT,UPDATE,DELETE작업을 자동으로 복제합니다. - 기본 키가 없는 테이블의 경우 Database Migration Service는 CDC 단계 중에 초기 스냅샷과 후속
INSERT문의 마이그레이션만 지원합니다.UPDATE및DELETE문은 수동으로 마이그레이션해야 합니다.마이그레이션을 시작하기 전에 기본 키가 없는 테이블에 기본 키를 추가하는 것이 좋습니다. 기본 키 없이 PostgreSQL 데이터베이스의 테이블을 나열하는 쿼리를 생성하는 방법 또는
UPDATE및DELETE작업을 수동으로 마이그레이션하는 방법은 디버깅 및 기타 도구를 참조하세요.또는
REPLICA IDENTITY를 사용하여 기본 키가 없는 테이블을 마이그레이션할 수 있는 간소화된 마이그레이션 시나리오인 빠른 시작 마이그레이션 흐름을 사용할 수 있습니다. 자세한 내용은 빠른 시작 마이그레이션 사용 가이드를 참조하세요.
- 기본 키가 있는 테이블은 모든
- 커스텀 DB 파라미터 그룹을 구성하고 인스턴스에 연결합니다.
- 맞춤 매개변수 그룹을 만들고 (AWS 문서의
DB 파라미터 그룹 작업 참조) 다음 파라미터를 구성합니다.
shared_preload_libraries에pglogical를 포함하도록 설정합니다.rds.logical_replication을1로 설정합니다. 이 매개변수는 Amazon RDS에서 논리적 WAL 로깅을 사용 설정합니다. PostgreSQL용 Amazon RDS의 논리적 복제를 참조하세요.wal_sender_timeout을0로 설정합니다.0값은 비활성 복제 연결을 종료하는 제한 시간 메커니즘을 중지합니다.max_replication_slots를 최소한 마이그레이션할 데이터베이스 수에 마이그레이션 작업 수를 곱한 값에 테이블 동기화를 위한 비축분을 더한 값으로 설정합니다.예를 들어 소스 인스턴스에 5개의 데이터베이스가 있고 해당 소스에 대해 2개의 마이그레이션 작업을 만드는 경우 복제 슬롯 수는 5 * 2 = 10개 이상을 이미 소스에서 다른 태스크에 사용 중인 복제 슬롯 수와 합한 값이어야 합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 복제 슬롯 수를 늘리고 구성을 확인해야 합니다.
이 매개변수의 기본값은 10입니다.
max_wal_senders를 최소한max_replication_slots값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 설정합니다.예를 들어
max_replication_slots파라미터가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는 10+2 = 12개입니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 발신자 수를 늘리고 구성을 확인해야 합니다.이 매개변수의 기본값은 10입니다.
max_worker_processes를 마이그레이션할 데이터베이스 수에 인스턴스의 기존 작업자 프로세스를 더한 값 이상으로 설정합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 연결당 추가 작업자 프로세스 2개(최대 작업자 20개)를 고려하세요.이 매개변수의 기본값은 8입니다.
- RDS DB 인스턴스에 파라미터 그룹을 연결합니다. 새 인스턴스를 만드는 경우 추가 구성에서 이 옵션을 찾을 수 있습니다. 그렇지 않으면 매개변수 그룹을 연결하도록 인스턴스를 수정합니다.
- 맞춤 매개변수 그룹을 만들고 (AWS 문서의
DB 파라미터 그룹 작업 참조) 다음 파라미터를 구성합니다.
- 파라미터 그룹 변경사항이 적용되도록 Amazon RDS 인스턴스를 다시 시작합니다.
Amazon Aurora PostgreSQL 소스 구성
지속적 마이그레이션을 위해 Amazon Aurora PostgreSQL 소스 클러스터를 구성하려면 다음 단계를 완료합니다.
- PostgreSQL용 Amazon Aurora 소스의 경우 Database Migration Service는 템플릿 데이터베이스
template0,template1, AWS 내부 데이터베이스rdsadmin를 제외한 소스 클러스터의 모든 데이터베이스를 마이그레이션합니다. - 소스 클러스터에 기본
postgres데이터베이스가 포함되어 있는지 확인합니다. 이 데이터베이스가 없으면 마이그레이션을 구성하기 전에 만듭니다. - Amazon Aurora 클러스터 VPC 보안 그룹 인바운드 규칙을 구성합니다.
대상 PostgreSQL용 AlloyDB 클러스터 IP 주소 범위, VPC CIDR 범위 또는 역방향 SSH 배스천 호스트 VM에서 포트
5432의 수신 TCP 연결을 허용합니다. - 소스 데이터베이스에 설치된 PostgreSQL 확장 프로그램을 확인합니다.
Database Migration Service는 PostgreSQL용 AlloyDB에서 지원되지 않는 확장 프로그램을 마이그레이션하지 않습니다.
소스 데이터베이스 객체 및 애플리케이션 쿼리가 지원되지 않는 확장 프로그램을 참조하지 않는지 확인합니다.
계속하기 전에 소스 데이터베이스에서 지원되지 않는 확장 프로그램과 참조를 삭제하세요.
pg_cron확장 프로그램은 Database Migration Service에서 자동으로 마이그레이션되지 않지만 PostgreSQL용 AlloyDB 대상에서 지원됩니다. 소스 데이터베이스에서pg_cron를 사용하는 경우 마이그레이션을 승격한 후 대상 PostgreSQL용 AlloyDB 클러스터에 다시 설치하고 구성합니다. - 소스 클러스터에 전용 마이그레이션 사용자 계정을 만들고 필요한 권한을 부여합니다.
- 관리 계정을 사용하여 소스 클러스터에 연결하고 사용자를 만든 후 AWS 관리형
rds_replication역할을 부여합니다.CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- 마이그레이션 사용자 계정에 기본
postgres데이터베이스와 마이그레이션할 모든 데이터베이스에 필요한 권한을 부여합니다. 정보 스키마와pg_로 시작하는 스키마를 제외한 각 스키마의 각 데이터베이스에서 다음 명령어를 실행합니다.GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- 관리 계정을 사용하여 소스 클러스터에 연결하고 사용자를 만든 후 AWS 관리형
template0,template1,rdsadmin를 제외하고 마이그레이션할 각 데이터베이스에pglogical확장 프로그램을 설치합니다.CREATE EXTENSION IF NOT EXISTS pglogical;
- 테이블에 기본 키가 있는지 확인합니다. 연속 마이그레이션의 경우 PostgreSQL 논리적 복제를 수행하려면 변경 데이터 캡처 (CDC) 단계에서
UPDATE및DELETE작업을 복제하기 위해 테이블에 기본 키가 있어야 합니다.- 기본 키가 있는 테이블은 모든
INSERT,UPDATE,DELETE작업을 자동으로 복제합니다. - 기본 키가 없는 테이블의 경우 Database Migration Service는 CDC 단계 중에 초기 스냅샷과 후속
INSERT문의 마이그레이션만 지원합니다.UPDATE및DELETE문은 수동으로 마이그레이션해야 합니다.마이그레이션을 시작하기 전에 기본 키가 없는 테이블에 기본 키를 추가하는 것이 좋습니다. 기본 키 없이 PostgreSQL 데이터베이스의 테이블을 나열하는 쿼리를 생성하는 방법 또는
UPDATE및DELETE작업을 수동으로 마이그레이션하는 방법은 디버깅 및 기타 도구를 참조하세요.또는
REPLICA IDENTITY를 사용하여 기본 키가 없는 테이블을 마이그레이션할 수 있는 간소화된 마이그레이션 시나리오인 빠른 시작 마이그레이션 흐름을 사용할 수 있습니다. 자세한 내용은 빠른 시작 마이그레이션 사용 가이드를 참조하세요.
- 기본 키가 있는 테이블은 모든
- 커스텀 DB 클러스터 파라미터 그룹을 구성하고 클러스터에 연결합니다.
- 커스텀 DB 클러스터 파라미터 그룹을 만들고 다음 파라미터를 구성합니다.
shared_preload_libraries에pglogical를 포함하도록 설정합니다.rds.logical_replication을1로 설정합니다. 이 매개변수는 논리적 WAL 로깅을 사용 설정합니다.wal_sender_timeout을0로 설정합니다.0값은 비활성 복제 연결을 종료하는 제한 시간 메커니즘을 중지합니다.max_replication_slots를 최소한 마이그레이션할 데이터베이스 수에 마이그레이션 작업 수를 곱한 값에 테이블 동기화를 위한 비축분을 더한 값으로 설정합니다.예를 들어 소스 인스턴스에 5개의 데이터베이스가 있고 해당 소스에 대해 2개의 마이그레이션 작업을 만드는 경우 복제 슬롯 수는 5 * 2 = 10개 이상을 이미 소스에서 다른 태스크에 사용 중인 복제 슬롯 수와 합한 값이어야 합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 복제 슬롯 수를 늘리고 구성을 확인해야 합니다.
이 매개변수의 기본값은 10입니다.
max_wal_senders를 최소한max_replication_slots값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 설정합니다.예를 들어
max_replication_slots파라미터가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는 10+2 = 12개입니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 발신자 수를 늘리고 구성을 확인해야 합니다.이 매개변수의 기본값은 10입니다.
max_worker_processes를 마이그레이션할 데이터베이스 수에 인스턴스의 기존 작업자 프로세스를 더한 값 이상으로 설정합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 연결당 추가 작업자 프로세스 2개(최대 작업자 20개)를 고려하세요.이 매개변수의 기본값은 8입니다.
- DB 클러스터 파라미터 그룹을 Aurora DB 클러스터에 연결합니다.
- 커스텀 DB 클러스터 파라미터 그룹을 만들고 다음 파라미터를 구성합니다.
- 파라미터 그룹 변경사항이 적용되도록 Amazon Aurora DB 클러스터를 다시 시작합니다.
PostgreSQL용 Cloud SQL 소스 구성
연속 마이그레이션을 위해 PostgreSQL용 Cloud SQL 소스 인스턴스를 구성하려면 다음 단계를 완료합니다.
- PostgreSQL용 Cloud SQL 소스의 경우 Database Migration Service는 템플릿 데이터베이스
template0및template1를 제외한 소스 인스턴스의 모든 데이터베이스를 마이그레이션합니다. - 소스 인스턴스에 기본
postgres데이터베이스가 포함되어 있는지 확인합니다. 이 데이터베이스가 없으면 마이그레이션을 구성하기 전에 만듭니다. - 비공개 IP 주소로 구성된 Cloud SQL 소스 인스턴스에서 RFC 1918 이외의 주소 IP 범위를 사용하는 대상 PostgreSQL용 AlloyDB 클러스터로 마이그레이션하는 경우 RFC 1918 이외의 범위를 소스 인스턴스의 승인된 네트워크에 추가합니다. 자세한 내용은 승인된 네트워크 구성을 참조하세요.
- 소스 데이터베이스에 설치된 PostgreSQL 확장 프로그램을 확인합니다.
Database Migration Service는
PostgreSQL용 AlloyDB에서 지원되지 않는 확장 프로그램을 마이그레이션하지 않습니다.
소스 데이터베이스 객체 및 애플리케이션 쿼리가 지원되지 않는 확장 프로그램을 참조하지 않는지 확인합니다. 계속하기 전에 소스 데이터베이스에서 지원되지 않는 확장 프로그램과 참조를 삭제합니다.
pg_cron확장 프로그램은 Database Migration Service에서 자동으로 마이그레이션되지 않지만 PostgreSQL용 AlloyDB 대상에서 지원됩니다. 소스 데이터베이스에서pg_cron를 사용하는 경우 마이그레이션을 승격한 후 대상 PostgreSQL용 AlloyDB 클러스터에 다시 설치하고 구성합니다. - 소스 인스턴스에 전용 마이그레이션 사용자 계정을 만들고 필요한 권한을 부여합니다.
- Cloud SQL 문서의 사용자 만들기 페이지에 있는 단계에 따라 사용자 계정을 만듭니다.
- 마이그레이션 사용자 계정에
cloudsqlsuperuser역할을 부여합니다.GRANT cloudsqlsuperuser TO "MIGRATION_USER_ACCOUNT_NAME";
- 마이그레이션 사용자 계정에 기본
postgres데이터베이스와 마이그레이션할 모든 데이터베이스에 필요한 권한을 부여합니다. 정보 스키마와pg_로 시작하는 스키마를 제외한 각 스키마의 각 데이터베이스에서 다음 명령어를 실행합니다.GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- 마이그레이션할 각 데이터베이스에
pglogical확장 프로그램을 설치합니다(template0및template1제외). 다음 명령어를 실행합니다.CREATE EXTENSION IF NOT EXISTS pglogical;
- 테이블에 기본 키가 있는지 확인합니다. 연속 마이그레이션의 경우 PostgreSQL 논리적 복제를 수행하려면 변경 데이터 캡처 (CDC) 단계에서
UPDATE및DELETE작업을 복제하기 위해 테이블에 기본 키가 있어야 합니다.- 기본 키가 있는 테이블은 모든
INSERT,UPDATE,DELETE작업을 자동으로 복제합니다. - 기본 키가 없는 테이블의 경우 Database Migration Service는 CDC 단계에서 초기 스냅샷과 후속
INSERT문을 마이그레이션합니다.UPDATE및DELETE문은 수동으로 마이그레이션해야 합니다.마이그레이션을 시작하기 전에 기본 키가 없는 테이블에 기본 키를 추가하는 것이 좋습니다. 기본 키 없이 PostgreSQL 데이터베이스의 테이블을 나열하는 쿼리를 생성하는 방법 또는
UPDATE및DELETE작업을 수동으로 마이그레이션하는 방법은 디버깅 및 기타 도구를 참조하세요.또는
REPLICA IDENTITY를 사용하여 기본 키가 없는 테이블을 마이그레이션할 수 있는 간소화된 마이그레이션 시나리오인 빠른 시작 마이그레이션 흐름을 사용할 수 있습니다. 자세한 내용은 빠른 시작 마이그레이션 사용 가이드를 참조하세요.
- 기본 키가 있는 테이블은 모든
- Cloud SQL 소스 인스턴스에서 다음 데이터베이스 플래그를 구성합니다.
cloudsql.logical_decoding을on로 설정합니다.cloudsql.enable_pglogical을on로 설정합니다.wal_sender_timeout을0로 설정합니다.0값은 비활성 복제 연결을 종료하는 제한 시간 메커니즘을 중지합니다.max_replication_slots를 마이그레이션할 데이터베이스 수에 마이그레이션 작업 수를 곱한 값에 테이블 동기화를 위한 비축분을 더한 값 이상으로 설정합니다.예를 들어 소스 인스턴스에 5개의 데이터베이스가 있고 해당 소스에 대한 2개의 마이그레이션 작업을 만드는 경우 복제 슬롯 수는 5 * 2 = 10개 이상을 이미 소스에서 다른 태스크에 사용 중인 복제 슬롯 수와 합한 값이어야 합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 복제 슬롯 수를 늘리고 구성을 확인해야 합니다.
이 플래그의 기본값은 10입니다.
max_wal_senders를 최소한max_replication_slots값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 설정합니다.예를 들어
max_replication_slots플래그가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는 10+2 = 12개입니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 마이그레이션 작업을 만들 때 발신자 수를 늘리고 구성을 확인해야 합니다.이 플래그의 기본값은 10입니다.
max_worker_processes를 마이그레이션할 데이터베이스 수에 인스턴스의 기존 작업자 프로세스를 더한 값 이상으로 설정합니다. 조정된 데이터 덤프 동시 로드 설정을 사용하려면 연결당 추가 작업자 프로세스 2개(최대 20개 작업자)를 고려하세요.이 플래그의 기본값은 8입니다.
플래그 수정에 대한 자세한 내용은 Cloud SQL 문서의 데이터베이스 플래그 구성을 참조하세요.
- 데이터베이스 플래그 변경사항이 적용될 수 있도록 소스 Cloud SQL 인스턴스를 다시 시작합니다.
다음 단계
전체 단계별 마이그레이션 둘러보기는 PostgreSQL용 AlloyDB 마이그레이션 시작하기를 참조하세요.
소스 인스턴스와 대상 인스턴스 간의 네트워크 연결을 계획하려면 네트워킹 고려사항을 참조하세요.