마이그레이션 확인

이 페이지에서는 마이그레이션된 데이터가 완전하고 정확한지 확인하는 방법을 설명합니다. 최소한 마이그레이션된 PostgreSQL용 AlloyDB 클러스터에 데이터베이스와 테이블이 있는지 확인해야 합니다.

  1. 마이그레이션된 데이터베이스에 대해 SQL 명령어를 실행할 수 있는 클라이언트 또는 쿼리 도구 (예: Google Cloud 콘솔의 AlloyDB Studio 또는 psql)를 사용하여 PostgreSQL용 AlloyDB 클러스터에 연결합니다.

    PostgreSQL용 AlloyDB 클러스터 및 인스턴스에 연결하는 방법에 대한 자세한 내용은 PostgreSQL용 AlloyDB 연결 개요를 참조하세요.

  2. 클라이언트와 무관한 ANSI SQL 쿼리를 실행하여 마이그레이션된 데이터를 확인합니다.

    모든 데이터베이스 나열

    다음 쿼리를 실행하여 대상 PostgreSQL용 AlloyDB 클러스터에 마이그레이션한 모든 소스 데이터베이스가 포함되어 있는지 확인합니다.

    SELECT datname FROM pg_database
    WHERE datistemplate = false;

    데이터베이스의 모든 테이블 나열

    다음 쿼리를 실행하여 데이터베이스의 모든 사용자 테이블을 나열합니다.

    SELECT table_schema, table_name
    FROM information_schema.tables
    WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
      AND table_type = 'BASE TABLE'
    ORDER BY table_schema, table_name;

    테이블 열 정의 및 데이터 유형 확인

    다음 쿼리를 실행하여 특정 테이블의 열 이름, 데이터 유형, null 허용 여부를 확인합니다.

    SELECT
      column_name,
      data_type,
      character_maximum_length,
      is_nullable,
      column_default
    FROM information_schema.columns
    WHERE table_name = 'TABLE_NAME'
    ORDER BY ordinal_position;

    테이블 행 수 및 샘플 데이터 확인

    다음 쿼리를 실행하여 행 수를 확인하고 특정 테이블의 샘플 행을 검사합니다.

    1. 총 행 수를 확인합니다.
      SELECT COUNT(*) FROM TABLE_NAME;
    2. 이전된 레코드 샘플 보기:
      SELECT * FROM TABLE_NAME LIMIT 10;

    기본 키 및 제약 조건 확인

    다음 쿼리를 실행하여 기본 키, 외래 키, 고유 제약 조건이 올바르게 생성되었는지 확인합니다.

    SELECT
      table_schema,
      table_name,
      constraint_name,
      constraint_type
    FROM information_schema.table_constraints
    WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
    ORDER BY table_schema, table_name, constraint_type;

    색인 확인

    다음 쿼리를 실행하여 마이그레이션된 테이블에 색인이 생성되었는지 확인합니다.

    SELECT
      schemaname,
      tablename,
      indexname,
      indexdef
    FROM pg_indexes
    WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
    ORDER BY schemaname, tablename, indexname;

    시퀀스 확인

    다음 쿼리를 실행하여 마이그레이션된 데이터베이스에 시퀀스가 있는지 확인합니다.

    SELECT
      sequence_schema,
      sequence_name,
      data_type
    FROM information_schema.sequences
    ORDER BY sequence_schema, sequence_name;
  3. 이러한 쿼리의 결과를 소스 데이터베이스와 비교하여 모든 객체, 행 수, 스키마 구조가 일치하는지 확인합니다.

COUNT(*) 쿼리 실행에 리소스가 많이 소모될 수 있는 대형 테이블의 경우 오픈소스 데이터 검증 도구 (DVT)를 사용하는 것이 좋습니다. 이 도구는 여러 환경에서 맞춤 유효성 검사를 수행하는 자동화되고 반복 가능한 방법을 제공합니다.

확인한 모든 항목이 예상대로라면 Database Migration Service가 데이터를 올바르게 마이그레이션한 것입니다.