AWS Database Migration Service
사용 설명서 (버전 API Version 2016-01-01)

데이터 검증 작업 설정

원본에서 대상으로 데이터가 정확히 마이그레이션되었는지 확인할 수 있습니다. 작업에 대해 검증을 활성화하면 AWS DMS에서는 테이블에 대해 전체 로드가 수행된 직후 소스 및 대상 데이터를 비교하기 시작합니다. 작업 데이터 검증, 요구 사항, 데이터베이스 지원 범위, 보고 대상 지표에 대한 자세한 내용은 AWS DMS 작업 검증 단원을 참조하십시오.

데이터 검증 설정 및 값에는 다음 사항이 포함됩니다.

  • EnableValidation – true로 설정한 경우 데이터 검증을 활성화합니다. 그렇지 않으면 작업에 대한 검증은 비활성화됩니다. 기본값은 false입니다.

  • FailureMaxCount – 작업에 대한 검증이 일시 중지되기 전에 검증에 실패할 수 있는 최대 레코드 수를 지정합니다. 기본값은 10,000입니다. 검증에 실패하는 레코드 수와 상관없이 검증을 계속하려면 이 값을 원본의 레코드 수보다 더 높게 설정합니다.

  • HandleCollationDiff – 이 옵션이 true로 설정되면 비교할 소스 및 대상 레코드 식별 시 검증은 PostgreSQL 엔드포인트의 열 기준 데이터 정렬 차이를 고려합니다. 그렇지 않은 경우 열 기준 데이터의 이러한 차이는 검증에서 무시됩니다. PostgreSQL 엔드포인트에서 열 기준 데이터 정렬은 데이터 검증에 중요한 행의 순서를 지정할 수 있습니다. HandleCollationDiff를 true로 설정하면 이러한 데이터 정렬 차이가 자동으로 해결되고 데이터 검증에서 거짓 긍정이 방지됩니다. 기본값은 false입니다.

  • RecordFailureDelayLimitInMinutes – 검증 실패 세부 정보를 보고하기 전에 지연을 지정합니다. 일반적으로 AWS DMS는 작업 지연 시간을 사용하여 변경 사항이 대상에 이르는 실제 지연을 인식함으로써 거짓 긍정을 방지합니다. 이러한 설정을 통해 실제 지연 값이 재정의되고, 검증 지표를 보고하기 전에 지연을 더 높게 설정할 수 있습니다. 기본값은 0입니다.

  • TableFailureMaxCount – 작업에 대한 검증이 일시 중지되기 전에 검증에 실패할 수 있는 최대 테이블 수를 지정합니다. 기본값은 1000입니다. 검증에 실패하는 테이블 수와 상관없이 검증을 계속하려면 이 값을 원본의 테이블 수보다 더 높게 설정합니다.

  • ThreadCount – 검증 중 AWS DMS에서 사용하는 실행 스레드 수를 지정합니다. 각 스레드는 비교 및 검증할 원본과 대상에서 아직 검증되지 않은 데이터를 선택합니다. 기본값은 5입니다. ThreadCount를 높게 설정하면 AWS DMS가 검증을 더 빨리 완료할 수 있습니다. 하지만 AWS DMS는 동시 쿼리를 더 많이 실행하여 소스 및 대상에서 더 많은 리소스를 사용합니다.

  • ValidationOnly – 이 옵션이 true로 설정되면 작업을 실행하는 경우 데이터 마이그레이션이나 복제를 수행하지 않고 데이터 검증을 미리 봅니다.

    이 옵션을 설정할 수 있으려면 AWS DMS 콘솔에서 작업 마이그레이션 유형Replicate data changes only(데이터 변경만 복제)로 설정합니다. 또는 AWS DMS API에서 마이그레이션 유형을 cdc로 설정합니다.

    이러한 접근 방법을 통해 실제로 데이터를 옮기기 전에 검증 결과를 확인하고 실패를 해결할 수 있습니다. 이 옵션은 모든 소스 데이터를 대상으로 마이그레이션한 후에 실패가 해결되기를 기다리는 것보다 더 효율적일 수 있습니다. 기본값은 false입니다.

예를 들어 다음 JSON은 스레드의 기본 수를 두 배로 늘려 데이터 검증을 활성합니다. 또한 PostgreSQL 엔드포인트에서 열 기준 데이터 정렬 차이로 야기된 레코드 순서의 차이도 고려합니다. 또한 검증 실패를 처리할 추가 시간을 고려하도록 검증 보고 지연을 제공합니다.

"ValidationSettings": { "EnableValidation": true, "ThreadCount": 10, "HandleCollationDiff": true, "RecordFailureDelayLimitInMinutes": 30 }

참고

Oracle 엔드포인트의 경우, AWS DMS에서는 DBMS_CRYPTO를 사용하여 BLOB을 검증합니다. Oracle 엔드포인트에 BLOB이 사용되는 경우 Oracle 엔드포인트에 액세스하는 데 사용되는 사용자 계정에 DBMS_CRYPTO에 대한 실행 권한을 부여해야 합니다. 다음 명령문을 실행하여 이 작업을 수행합니다.

grant execute on sys.dbms_crypto to <dms_endpoint_user>;