AWS DMS 데이터 검증 - AWS Database Migration Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS DMS 데이터 검증

AWS DMS는 데이터가 원본에서 대상으로 정확히 마이그레이션되었는지 확인하기 위한 데이터 검증을 지원합니다. 활성화된 경우 테이블에 대해 전체 로드가 수행된 직후 검증이 시작됩니다. 검증은 CDC 지원 태스크에 대해 증분 변경 사항이 발생할 경우 이러한 변경 사항을 비교합니다.

데이터를 검증하는 동안 AWS DMS는 소스의 각 행과 대상의 해당 행을 비교한 후 이 행의 데이터가 동일한지 확인하고 불일치 항목이 있을 경우 해당 내용을 보고합니다. 이 작업을 수행하기 위해 AWS DMS는 적절한 쿼리를 실행하여 데이터를 검색합니다. 이러한 쿼리는 소스 및 대상의 추가 리소스와 추가 네트워크 리소스를 사용합니다.

검증이 활성화된 CDC 전용 태스크의 경우, 새 데이터의 검증을 시작하기 전에 테이블에 있는 기존 데이터를 모두 검증합니다.

데이터 검증은 AWS DMS가 소스 엔드포인트로서 다음과 같은 소스 데이터베이스를 지원할 때마다 해당 데이터베이스와 연동합니다.

  • Oracle

  • PostgreSQL 호환 데이터베이스(PostgreSQL, Aurora PostgreSQL 또는 Aurora Serverless for PostgreSQL)

  • MySQL 호환 데이터베이스(MySQL, MariaDB, Aurora MySQL 또는 Aurora Serverless for MySQL)

  • Microsoft SQL Server

  • IBM Db2 LUW

데이터 검증은 AWS DMS가 대상 엔드포인트로서 다음 데이터베이스를 지원할 때마다 해당 데이터베이스와 연동합니다.

  • Oracle

  • PostgreSQL 호환 데이터베이스(PostgreSQL, Aurora PostgreSQL 또는 Aurora Serverless for PostgreSQL)

  • MySQL 호환 데이터베이스(MySQL, MariaDB, Aurora MySQL 또는 Aurora Serverless for MySQL)

  • Microsoft SQL Server

  • IBM Db2 LUW

  • Amazon Redshift

  • Amazon S3. Amazon S3 대상 데이터 유효성 검사에 대한 자세한 내용은 Amazon S3 대상 데이터 검증 단원을 참조하세요.

지원되는 엔드포인트에 대한 자세한 내용은 AWS DMS 엔드포인트 작업 단원을 참조하십시오.

데이터 검증에는 마이그레이션 자체에 소요되는 시간 외에도 추가 시간이 요구됩니다. 필요한 추가 시간은 마이그레이션되는 데이터의 양에 따라 달라집니다.

이러한 설정에 대한 자세한 내용은 데이터 검증 작업 설정 섹션을 참조하세요.

JSON 파일의 ValidationSettings 태스크 설정에 대한 예제는 작업 설정 예제 섹션을 참조하세요.

복제 작업 통계

데이터 검증이 활성화되면 AWS DMS는 테이블 수준에서 다음 통계를 제공합니다.

  • ValidationState - 테이블의 검증 상태입니다. 이 파라미터의 값은 다음과 같습니다.

    • 활성화되지 않음 - 마이그레이션 작업의 테이블에 대해 검증이 활성화되지 않습니다.

    • 보류 중인 레코드 - 테이블의 일부 레코드가 검증 대기 중입니다.

    • 일치하지 않는 레코드 - 테이블의 일부 레코드가 원본과 대상 간에 일치하지 않습니다. 불일치가 발생하는 이유에는 여러 가지가 있으므로 자세한 내용은 대상 엔드포인트의 awsdms_control.awsdms_validation_failures_v1 테이블을 참조하십시오.

    • 일시 중지된 레코드 - 테이블의 일부 레코드를 검증할 수 없습니다.

    • 프라이머리 키 없음 - 프라이머리 키가 없어 테이블을 검증할 수 없습니다.

    • 테이블 오류 - 테이블이 오류 상태이고 일부 데이터가 마이그레이션되지 않아 테이블이 검증되지 않았습니다.

    • 검증됨 - 테이블의 모든 행이 검증되었습니다. 테이블이 업데이트된 경우 상태가 Validated에서 변경할 수 있습니다.

    • 오류 - 예상치 못한 오류로 인해 테이블을 검증할 수 없습니다.

    • 검증 보류 중 - 테이블이 검증 대기 중입니다.

    • 테이블 준비 중 - 마이그레이션 태스크에서 활성화된 테이블을 검증하기 위해 준비 중입니다.

    • 재검증 보류 중 - 테이블이 업데이트된 후 테이블의 모든 행이 검증 보류 중입니다.

  • ValidationPending - 대상에 마이그레이션되었지만 아직 검증되지 않은 레코드 수입니다.

  • ValidationSuspended - AWS DMS에서 비교할 수 없는 레코드 수입니다. 예를 들어, 원본의 레코드를 지속적으로 업데이트하고 있는 경우 AWS DMS가 원본과 대상을 비교할 수 없습니다.

  • ValidationFailed - 데이터 검증 단계를 통과하지 않은 레코드 수입니다.

JSON 파일의 ValidationSettings 태스크 설정에 대한 예제는 작업 설정 예제 섹션을 참조하세요.

콘솔, AWS CLI 또는 AWS DMS API를 사용하여 데이터 검증 정보를 볼 수 있습니다.

  • 콘솔에서 작업을 생성하거나 수정할 때 작업을 검증하도록 선택할 수 있습니다. 콘솔을 사용하여 데이터 검증 보고서를 보려면 [Tasks] 페이지에서 작업을 선택하고 세부 정보 섹션에서 [Table statistics] 탭을 선택합니다.

  • 데이터 검증을 시작하도록 작업을 생성하거나 수정하려는 경우 CLI를 사용하여 EnableValidation 파라미터를 true로 설정합니다. 다음 예제에서는 작업을 생성하고 데이터 검증을 활성화합니다.

    create-replication-task --replication-task-settings '{"ValidationSettings":{"EnableValidation":true}}' --replication-instance-arn arn:aws:dms:us-east-1:5731014: rep:36KWVMB7Q --source-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CSZAEFQURFYMM --target-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CGPP7MF6WT4JQ --migration-type full-load-and-cdc --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {"schema-name": "data_types", "table-name": "%"}, "rule-action": "include"}]}'

    describe-table-statistics 명령을 사용하여 JSON 형식의 데이터 검증 보고서를 받습니다. 다음 명령은 데이터 검증 보고서를 표시합니다.

    aws dms describe-table-statistics --replication-task-arn arn:aws:dms:us-east-1:5731014: rep:36KWVMB7Q

    이 보고서는 다음과 비슷합니다.

    { "ReplicationTaskArn": "arn:aws:dms:us-west-2:5731014:task:VFPFTYKK2RYSI", "TableStatistics": [ { "ValidationPendingRecords": 2, "Inserts": 25, "ValidationState": "Pending records", "ValidationSuspendedRecords": 0, "LastUpdateTime": 1510181065.349, "FullLoadErrorRows": 0, "FullLoadCondtnlChkFailedRows": 0, "Ddls": 0, "TableName": "t_binary", "ValidationFailedRecords": 0, "Updates": 0, "FullLoadRows": 10, "TableState": "Table completed", "SchemaName": "d_types_s_sqlserver", "Deletes": 0 } }
  • AWS DMS API에서 CreateReplicationTask 작업을 사용하여 태스크 하나를 생성하고, EnableValidation 파라미터를 true로 설정하여 태스크를 통해 마이그레이션되는 데이터를 검증합니다. [DescribeTableStatistics] 작업을 사용하여 JSON 형식의 데이터 검증 보고서를 받습니다.

Amazon CloudWatch를 사용한 복제 태스크 통계

Amazon CloudWatch가 활성화되면 AWS DMS에서는 다음과 같은 복제 태스크 통계를 제공합니다.

  • ValidationSucceededRecordCount - AWS DMS에서 검증한 분당 행 수입니다.

  • ValidationAttemptedRecordCount - 검증을 시도한 분당 행 수입니다.

  • ValidationFailedOverallCount - 검증이 실패한 행 수입니다.

  • ValidationSuspendedOverallCount - 검증이 일시 중지된 행 수입니다.

  • ValidationPendingOverallCount - 검증이 보류 중인 행 수입니다.

  • ValidationBulkQuerySourceLatency - AWS DMS는 변경 사항이 많을 경우, 전체 복제 또는 지속적 복제 동안 특정 시나리오를 중심으로 일괄적으로 데이터를 검증할 수 있습니다. 이 지표는 소스 엔드포인트 대량의 데이터 세트를 읽는 데 필요한 지연 시간을 나타냅니다.

  • ValidationBulkQueryTargetLatency - AWS DMS는 변경 사항이 많을 경우, 전체 복제 또는 지속적 복제 동안 특정 시나리오를 중심으로 일괄적으로 데이터를 검증할 수 있습니다. 이 지표는 대상 엔드포인트의 대량의 데이터 세트를 읽는 데 필요한 지연 시간을 나타냅니다.

  • ValidationItemQuerySourceLatency - 지속적 복제 동안 데이터 검증은 지속적 변경 사항을 식별하고 이러한 변경 사항을 검증합니다. 이 지표는 소스에서 이런 변경을 읽는 데 필요한 지연 시간을 나타냅니다. 검증은 변경의 수를 근거로, 검증 동안 오류가 있을 시 필요한 것보다 더 많은 쿼리를 실행할 수 있습니다.

  • ValidationItemQueryTargetLatency - 지속적 복제 동안 데이터 검증은 지속적 변경 사항을 식별하고 행 단위로 변경 사항을 검증할 수 있습니다. 이 지표는 대상에서 이런 변경을 읽는 데 필요한 지연 시간을 제공합니다. 검증은 변경의 수를 근거로, 검증 동안 오류가 있을 시 필요한 것보다 더 많은 쿼리를 실행할 수도 있습니다.

CloudWatch를 사용한 통계에서 데이터 검증 정보를 수집하려면 콘솔을 사용하여 태스크를 생성하거나 수정할 때 CloudWatch 로그 활성화를 선택합니다. 그런 다음, 데이터가 소스에서 대상으로 정확히 마이그레이션되었는지 확인하기 위한 데이터 검증 정보를 확인하려면 다음 작업을 수행합니다.

  1. 데이터베이스 마이그레이션 태스크 페이지에서 태스크를 선택합니다.

  2. CloudWatch 지표 탭을 선택합니다.

  3. 드롭다운 메뉴에서 검증을 선택합니다.

작업 중 테이블 다시 검증

작업 실행 중에 AWS DMS를 요청하여 데이터 검증을 수행할 수 있습니다.

AWS Management Console

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dms/v2/에서 AWS DMS 콘솔을 엽니다.

    AWS Identity and Access Management(IAM) 사용자로 로그인한 경우, AWS DMS에 액세스하기 위한 적절한 권한이 있어야 합니다. 필요한 권한에 대한 내용은 AWS DMS 사용에 필요한 IAM 권한 섹션을 참조하세요.

  2. 탐색 창에서 [작업]을 선택합니다.

  3. 다시 검증할 테이블이 있는 실행 중인 작업을 선택합니다.

  4. 테이블 통계 탭을 선택합니다.

  5. 다시 검증할 테이블을 선택합니다(한 번에 최대 10개의 테이블을 선택할 수 있음). 작업이 더 이상 실행되고 있지 않으면 테이블을 다시 검증할 수 없습니다.

  6. Revalidate(다시 검증)를 선택합니다.

JSON 편집기를 사용하여 검증 규칙 수정

AWS DMS 콘솔에서 JSON 편집기를 사용하여 태스크에 검증 규칙을 추가하려면 다음 작업을 수행합니다.

  1. 데이터베이스 마이그레이션 태스크를 선택합니다.

  2. 마이그레이션 태스크 목록에서 태스크를 선택합니다.

  3. 태스크가 실행 중인 경우 작업 드롭다운 메뉴에서 중지를 선택합니다.

  4. 태스크가 중지된 후 태스크를 수정하려면 작업 드롭다운 메뉴에서 수정을 선택합니다.

  5. 테이블 매핑 섹션에서 JSON 편집기를 선택하고 테이블 매핑에 검증 규칙을 추가합니다.

예를 들어, 다음과 같은 검증 규칙을 추가하여 소스에서 replace 함수를 실행할 수 있습니다. 이 경우 검증 규칙에서 null 바이트가 발견되면 해당 바이트는 공백으로 확인됩니다.

{ "rule-type": "validation", "rule-id": "1", "rule-name": "1", "rule-target": "column", "object-locator": { "schema-name": "Test-Schema", "table-name": "Test-Table", "column-name": "Test-Column" }, "rule-action": "override-validation-function", "source-function": "REPLACE(${column-name}, chr(0), chr(32))", "target-function": "${column-name}" }

검증 전용 태스크

마이그레이션이나 데이터 복제를 수행하지 않고도 데이터를 미리 보고 검증하는 검증 전용 태스크를 생성할 수 있습니다. 검증 전용 태스크를 생성하려면 EnableValidationValidationOnly 설정을 true로 설정합니다. ValidationOnly를 활성화하면 추가 요구 사항이 적용됩니다. 자세한 내용은 데이터 검증 작업 설정 섹션을 참조하세요.

전체 로드 전용 마이그레이션 유형의 경우, 실패가 많이 보고되면 검증 전용 태스크가 CDC 태스크보다 훨씬 더 빨리 완료됩니다. 그러나 소스 또는 대상 엔드포인트에 대한 변경 사항은 전체 로드 모드에서 실패로 보고되며, 이는 단점이 될 수 있습니다.

CDC 검증 전용 태스크는 평균 지연 시간을 기준으로 검증을 지연시키며, 실패를 보고하기 전에 여러 번 재시도합니다. 대부분의 데이터 비교 결과가 실패로 이어질 경우, CDC 모드의 검증 전용 태스크는 속도가 매우 느리며, 이는 단점이 될 수 있습니다.

검증 전용 태스크는 복제 태스크와 같은 방향으로 설정해야 하며, 특히 CDC의 경우에는 더욱 그렇습니다. CDC 검증 전용 태스크는 소스의 변경 로그를 기준으로, 어떤 행이 변경되었고 재검증해야 하는지 감지하기 때문입니다. 대상이 소스로 지정된 경우, DMS에서 대상으로 전송한 변경 사항만 인식하며 복제 오류를 포착하지 못할 수 있습니다.

전체 로드 검증 전용

AWS DMS 3.4.6 이상 버전부터 전체 로드 검증 전용 태스크는 소스 및 대상 테이블의 모든 행을 단일 패스로 빠르게 비교하고, 오류가 발생하면 즉시 보고한 다음 종료합니다. 이 모드에서는 실패로 인해 검증이 일시 중지되지 않으며, 속도에 최적화되어 있습니다. 그러나 소스 또는 대상 엔드포인트에 대한 변경 사항은 실패로 보고됩니다.

참고

AWS DMS 3.4.6 이상 버전부터 이 검증 동작은 검증이 활성화된 전체 로드 마이그레이션 태스크에도 적용됩니다.

CDC 검증 전용

CDC 검증 전용 태스크는 새로 시작할 때 소스 테이블과 대상 테이블 사이에 있는 모든 기존 행을 검증합니다. 또한 CDC 검증 전용 태스크는 지속적으로 실행되며, 지속적 복제의 변경 사항을 재검증하고, 각 패스에서 보고된 실패 횟수를 제한하고, 불일치 행이 실패하기 전에 다시 시도합니다. 이는 거짓 긍정을 방지하도록 최적화되었습니다.

FailureMaxCount 또는 TableFailureMaxCount 임계값을 위반하면 테이블(또는 전체 태스크)에 대한 검증이 일시 중지됩니다. 이는 검증이 활성화된 CDC 또는 전체 로드+CDC 마이그레이션 태스크에도 적용됩니다. 그리고 검증이 활성화된 CDC 태스크는 평균 소스 및 대상 지연 시간을 기준으로 변경된 각 행에 대한 재검증을 지연시킵니다.

하지만 CDC 검증 전용 태스크는 데이터를 마이그레이션하지 않으며 지연 시간도 발생하지 않습니다. 기본적으로 ValidationQueryCdcDelaySeconds는 180으로 설정됩니다. 그리고 지연 시간이 긴 환경을 고려하여 용량을 늘리고 거짓 긍정을 방지할 수 있습니다.

검증 전용 사용 사례

마이그레이션 또는 복제 태스크의 데이터 검증 부분을 별도의 검증 전용 태스크로 분할하는 사용 사례에는 다음 경우가 포함되나, 이에 국한되지 않습니다.

  • 검증이 수행되는 시기를 정확하게 제어 - 검증 쿼리는 소스 및 대상 엔드포인트 양쪽 모두에 추가적인 부하를 가중시킵니다. 따라서 먼저 한 태스크에서 데이터를 마이그레이션 또는 복제한 다음, 다른 태스크에서 결과를 검증하는 편이 유리할 수 있습니다.

  • 복제 인스턴스의 부하 감소 - 데이터 검증을 분할하여 자체 인스턴스에서 실행하는 편이 유리할 수 있습니다.

  • 특정 시점에 일치하지 않는 행의 수를 신속하게 파악 - 예를 들어, 유지 관리 기간 직전에 또는 도중에 프로덕션이 대상 엔드포인트로 전환될 경우 전체 로드 검증 전용 태스크를 생성하여 질문에 대한 답을 얻을 수 있습니다.

  • CDC 구성 요소를 사용한 마이그레이션 태스크에서 검증 실패가 예상될 경우 - 예를 들어, Oracle varchar2를 PostgreSQL jsonb으로 마이그레이션할 경우 CDC 검증은 이러한 실패한 행을 계속 재시도하고 매번 보고되는 실패 횟수를 제한합니다. 하지만 전체 로드 검증 전용 태스크를 생성하면 더 빠른 답을 얻을 수 있습니다.

  • 검증 실패 테이블을 읽는 데이터 복구 스크립트/유틸리티를 개발한 경우 - (문제 해결도 참조하세요). 전체 로드 검증 태스크는 데이터 복구 스크립트가 조치를 취해야 할 오류를 신속하게 보고합니다.

JSON 파일의 ValidationSettings 태스크 설정에 대한 예제는 작업 설정 예제 섹션을 참조하세요.

문제 해결

검증하는 동안 AWS DMS는 대상 엔드포인트에서 새 테이블인 awsdms_control.awsdms_validation_failures_v1을 생성합니다. 레코드 상태가 ValidationSuspended 또는 ValidationFailed가 되면 AWS DMS는 awsdms_control.awsdms_validation_failures_v1에 진단 정보를 씁니다. 이 테이블을 쿼리하여 검증 오류 문제를 해결할 수 있습니다.

대상에서 테이블이 생성되는 기본 스키마를 변경하는 방법에 대한 내용은 제어 테이블 태스크 설정 섹션을 참조하세요.

다음은 awsdms_control.awsdms_validation_failures_v1 테이블에 대한 설명입니다.

열 명칭 데이터 유형 Description

TASK_NAME

VARCHAR(128) NOT NULL

AWS DMS 작업 식별자

TABLE_OWNER VARCHAR(128) NOT NULL

테이블의 스키마(소유자).

TABLE_NAME

VARCHAR(128) NOT NULL

테이블 이름.

FAILURE_TIME DATETIME(3) NOT NULL

실패가 발생한 시간.

KEY_TYPE VARCHAR(128) NOT NULL

나중에 사용할 수 있도록 예약됩니다(값은 항상 'Row').

KEY TEXT NOT NULL

이 키는 행 레코드 유형의 기본 키입니다.

FAILURE_TYPE VARCHAR(128) NOT NULL

검증 오류의 심각도. RECORD_DIFF, MISSING_SOURCE 또는 MISSING_TARGET입니다.

DETAILS VARCHAR(8000) NOT NULL

지정된 키와 일치하지 않는 모든 소스/대상 열 값의 JSON 형식 문자열입니다.

다음 쿼리는 awsdms_control.awsdms_validation_failures_v1 테이블을 쿼리하여 작업에 대한 모든 실패를 표시합니다. 작업 이름은 작업의 외부 리소스 ID여야 합니다. 작업의 외부 리소스 ID는 작업 ARN의 마지막 값입니다. 예를 들어, ARN 값이 arn:aws:dms:us-west-2:5599:task: VFPFKH4FJR3FTYKK2RYSI인 작업의 경우, 작업의 외부 리소스 ID는 VFPFKH4FJR3FTYKK2RYSI입니다.

select * from awsdms_validation_failures_v1 where TASK_NAME = 'VFPFKH4FJR3FTYKK2RYSI' TASK_NAME VFPFKH4FJR3FTYKK2RYSI TABLE_OWNER DB2PERF TABLE_NAME PERFTEST FAILURE_TIME 2020-06-11 21:58:44 KEY_TYPE Row KEY {"key": ["3451491"]} FAILURE_TYPE RECORD_DIFF DETAILS [[{'MYREAL': '+1.10106036e-01'}, {'MYREAL': '+1.10106044e-01'}],]

DETAILS 필드를 보고 일치하지 않는 열을 확인할 수 있습니다. 실패한 레코드의 프라이머리 키가 있으므로, 소스 및 대상 엔드포인트를 쿼리하여 레코드에서 일치하지 않는 부분을 찾아낼 수 있습니다.

Redshift 검증 성능

Amazon Redshift는 열 기반 스토리지, MPP, 데이터 압축 및 기타 요소 등 여러 가지 면에서 관계형 데이터베이스와 다릅니다. 이러한 차이로 인해 Redshift는 관계형 데이터베이스와는 다른 성능 프로파일을 제공합니다.

전체 로드 복제 단계 중 검증에서는 PartitionSize 설정에 따라 데이터 크기가 제어되는 범위 쿼리를 사용합니다. 이러한 범위 기반 쿼리에서는 소스 테이블의 모든 레코드가 선택됩니다.

지속적인 복제의 경우 쿼리는 범위 기반과 개별 레코드 가져오기 간에 전환됩니다. 쿼리 유형은 다음과 같은 여러 요인에 따라 동적으로 결정됩니다.

  • 쿼리 볼륨

  • 소스 테이블의 DML 쿼리 유형

  • 작업 지연 시간

  • 총 레코드 수

  • PartitionSize 등의 검증 설정

검증 쿼리로 인해 Amazon Redshift 클러스터에 추가 로드가 발생할 수 있습니다. 위의 요인은 사용 사례에 따라 다르므로 검증 쿼리 성능을 검토하고 그에 따라 클러스터와 테이블을 조정해야 합니다. 성능 문제를 완화하기 위한 몇 가지 옵션은 다음과 같습니다.

  • PartitionSizeThreadCount 설정을 줄이면 전체 로드 검증 중에 워크로드를 줄이는 데 도움이 됩니다. 이렇게 하면 데이터 검증 속도가 느려진다는 점에 유의하세요.

  • Redshift는 프라이머리 키를 적용하지 않지만 AWS DMS는 데이터 검증을 위해 프라이머리 키를 사용하여 대상의 레코드를 고유하게 식별합니다. 전체 로드 검증 쿼리가 더 빠르게 실행되기 위해 가능하면 프라이머리 키가 정렬 키를 미러링하도록 설정합니다.

제한 사항

  • 데이터를 검증하려면 테이블에 기본 키나 고유한 인덱스가 있어야 합니다.

    • 기본 키 열은 CLOB, BLOB 또는 BYTE 형식이 아니어야 합니다.

    • VARCHAR 또는 CHAR 형식의 기본 키 열은 길이가 1024보다 작아야 합니다. 데이터 유형에 길이를 지정해야 합니다. 무제한 데이터 유형을 데이터 검증의 프라이머리 키로 사용할 수 없습니다.

    • NOVALIDATE 절을 사용하여 생성된 Oracle 키는 프라이머리 키 또는 고유 인덱스로 간주되지 않습니다.

    • 프라이머리 키가 없고 고유 키만 있는 Oracle 테이블의 경우에는 고유 제약 조건이 있는 열에도 NOT NULL 제약 조건이 있어야 합니다.

  • NULL PK/UK 값의 검증은 지원되지 않습니다.

  • 대상 PostgreSQL 인스턴스의 기본 키 열의 콜레이션이 "C"로 설정되어 있지 않으면 기본 키의 정렬 순서가 Oracle의 정렬 순서와 달라집니다. PostgreSQL과 Oracle의 정렬 순서가 다르면 데이터 검증을 통해 레코드를 검증할 수 없습니다.

  • 데이터 검증을 수행하면 원본 및 대상 데이터베이스에 대해 추가 쿼리가 생성됩니다. 두 데이터베이스에 이 추가 로드를 처리할 수 있을 만큼 충분한 리소스가 확보되었는지 확인해야 합니다. Redshift 대상의 경우 특히 그렇습니다. 자세한 내용은 Redshift 검증 성능 단원을 참조하십시오.

  • 여러 데이터베이스를 하나로 통합할 때는 데이터 검증이 지원되지 않습니다.

  • 원본 또는 대상 Oracle 엔드포인트의 경우 AWS DMS에서는 DBMS_CRYPTO를 사용하여 LOB를 검증합니다. Oracle 엔드포인트에 LOB가 사용되는 경우 Oracle 엔드포인트에 액세스하는 데 사용되는 사용자 계정에 dbms_crypto에 대한 실행 권한을 부여해야 합니다. 다음 명령문을 실행하여 이 권한을 호출할 수 있습니다.

    grant execute on sys.dbms_crypto to dms_endpoint_user;
  • 검증하는 동안 대상 데이터베이스를 AWS DMS 외부에서 수정하는 경우 불일치 사항이 정확히 보고되지 않을 수도 있습니다. AWS DMS가 동일한 테이블을 검증하는 동안 애플리케이션 중 하나가 데이터를 대상 테이블에 쓰는 경우에 이 결과가 발생할 수 있습니다.

  • 검증하는 동안 하나 이상의 행이 지속적으로 수정되면 AWS DMS가 이 행을 검증할 수 없습니다.

  • AWS DMS에서 10,000개가 넘는 실패 또는 일시 중지된 레코드를 검색하면 검증이 중지됩니다. 계속 진행하기 전에 데이터에 잠재된 문제를 해결하십시오.

  • AWS DMS는 보기의 데이터 검증을 지원하지 않습니다.

  • AWS DMS는 문자 대체 태스크 설정을 사용할 경우 데이터 검증을 지원하지 않습니다.

  • AWS DMS는 Oracle LONG 유형의 검증을 지원하지 않습니다.

  • AWS DMS는 이기종 마이그레이션 중에는 Oracle Spatial 유형의 검증을 지원하지 않습니다.

S3 대상 검증 사용에 대한 제한 사항은 S3 대상 검증 사용에 대한 제한 사항 섹션을 참조하세요.