개요
이 페이지에는 AlloyDB 디버깅 및 사용에 도움이 되는 스크립트가 포함되어 있습니다.
기본 키가 아닌 테이블의 UPDATE 및 DELETE 작업 마이그레이션
기본 키가 없는 테이블의 경우 Database Migration Service가 변경 데이터 캡처 (CDC) 단계 중에 초기 스냅샷과 INSERT
문의 마이그레이션을 지원합니다.
누락된 UPDATE
및 DELETE
프로세스를 업데이트하려면 이 문서의 뒷부분을 참고하세요.
소스와 AlloyDB 대상 클러스터 간에 누락된 데이터 감지
- 기본 키가 없는 테이블을 식별합니다.
select tab.table_schema, tab.table_name from information_schema.tables tab left join information_schema.table_constraints tco on tab.table_schema = tco.table_schema and tab.table_name = tco.table_name and tco.constraint_type = 'PRIMARY KEY' where tab.table_type = 'BASE TABLE' and tab.table_schema not in ('pg_catalog', 'information_schema', 'pglogical') and tco.constraint_name is null order by table_schema, table_name;
- 마이그레이션을 시작하기 전에 기본 키가 없는 모든 테이블에 대해 다음 쿼리를 사용하여 업데이트 또는 삭제가 있는지 확인합니다.
위치:SELECT schemaname, relname, n_tup_ins, n_tup_upd, n_tup_del FROM pg_stat_user_tables WHERE schemaname NOT IN ('pglogical', 'pg_catalog', 'information_schema');
n_tup_ins
: 삽입된 행 수n_tup_upd
: 업데이트된 행 수 (업데이트된 HOT 행 포함)n_tup_del
: 삭제된 행 수
- 이 결과를 별도의 테이블이나 파일에 저장합니다.
- 이전 설정이 완료되면 쿼리를 다시 실행합니다.
- 결과를 3단계의 결과와 비교합니다.
마이그레이션 중에 소스의 n_tup_upd
또는 n_tup_del
값에 차이가 있으면 소스에 일부 업데이트 또는 삭제가 있을 수 있습니다.
소스에서 AlloyDB 대상 인스턴스로 데이터를 수동으로 마이그레이션
소스와 AlloyDB 대상 인스턴스 간에 약간의 불일치가 감지되면 다음 옵션 중 하나를 사용하여 데이터를 이전할 수 있습니다.
옵션 1: 소스와 AlloyDB 대상 간에 데이터를 수동으로 비교하고 적절한 SQL 쿼리를 실행하여 소스와 복제본 간에 다른 데이터만 업데이트합니다.
옵션 2: 기본 키가 없는 테이블에 대해
pg_dump
및pg_restore
를 실행합니다. 자세한 내용은 pg_dump를 사용하여 온프레미스 PostgreSQL 서버에서 데이터 내보내기를 참고하세요.옵션 3: Postgres
COPY
명령어를 사용하여 데이터를 이전합니다. 자세한 내용은 PostgreSQL 문서를 참고하세요. 이 단계에서는 복제 VM이 소스 VM에 연결할 수 있어야 합니다.