내용으로 건너뛰기

AWS DMS의 소스 데이터베이스와 대상 데이터베이스 간의 데이터 불일치 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

전체 로드가 완료된 AWS Database Migration Service(AWS DMS) 작업 마이그레이션 단계가 진행 중인 복제본이 있습니다. 하지만 대상 데이터베이스의 데이터가 소스의 데이터와 일치하지 않습니다.

간략한 설명

AWS DMS를 사용하여 이기종 환경에서 데이터를 마이그레이션할 때 다음과 같은 이유로 데이터 불일치가 발생할 수 있습니다.

  • 잘못된 대형 바이너리 객체(LOB) 설정
  • 소스 또는 대상 데이터 유형이 지원되지 않음
  • 변경 데이터 캡처(CDC) 복제 중에 발생하는 오류나 예외로 인해 대상 데이터베이스에서 데이터 조작 언어(DML) 트랜잭션이 실패함

올바른 LOB 설정을 사용하지 않는 경우 LobMaxSize 작업 설정에 따라 데이터가 잘립니다. 따라서 대상 LOB 열에 소스와 정확히 동일한 데이터가 포함되지 않습니다.

이기종 마이그레이션 중에 AWS DMS는 소스 데이터 유형을 내부 데이터 유형으로 변환합니다. 그런 다음 AWS DMS가 내부 데이터를 대상 데이터 유형으로 변환합니다. 특정 소스 및 대상 데이터 유형이 AWS DMS에서 완전히 지원되지 않기 때문에 소스와 대상 사이에 데이터 불일치가 발생할 수 있습니다.

해결 방법

초기 점검 실시

전체 로드 전용 작업을 사용하는 경우 마이그레이션이 완료되고 작업이 중지된 상태인지 확인하십시오.

전체 로드 및 CDC 작업 또는 CDC 전용 작업을 사용하는 경우 CDCLatencySourceCDCLatencyTarget Amazon CloudWatch 지표를 확인하십시오. 지연 시간이 없는지 확인합니다.

소스 또는 대상 데이터베이스에 연결된 다른 애플리케이션이 없는지 확인하십시오. 애플리케이션이 있으면 데이터 조작이 발생할 수 있습니다. 예를 들어, 전체 로드 전용 작업을 실행 중인데 다른 애플리케이션에서 소스 날짜를 수정하면 대상에서 데이터 불일치가 발생합니다. 또는 다른 애플리케이션이 대상 데이터베이스의 마이그레이션된 대상 테이블에 데이터를 쓰는 경우 대상과 소스 사이에 데이터 불일치가 발생합니다.

대상에서 awsdms_validation_failures_v1 테이블 쿼리

데이터 일관성을 목표로 하는 경우 AWS DMS 작업을 생성할 때 검증을 활성화하십시오.

참고: 테이블에 LOB 열이 있고 마이그레이션에 제한된 LOB 모드를 사용하는 경우 ValidationPartialLobSizeLobMaxSize와 동일한 값으로 설정해야 합니다.

검증이 활성화된 경우 문제 해결

검증이 활성화된 경우 대상 데이터베이스의 awsdms_Validation_failures_v1 테이블을 확인하십시오. 마이그레이션 중에 레코드 상태가 ValidationSuspended 또는 ValidationFailed가 되는 경우 AWS DMS는 awsdms_validation_failures_v1에 진단 정보를 기록합니다. 검증 오류 문제를 해결하려면 다음과 유사한 명령을 실행합니다.

select * from awsdms_validation_failures_v1 where TASK_NAME = 'ABC123FGJASHKNA345';

실패와 관련된 정보를 보려면 출력의 세부 정보 열을 확인하십시오. 열을 사용하여 소스와 대상 사이의 레코드 데이터를 비교할 수 있습니다. 데이터 검증 관련 문제를 해결하는 방법에 대한 자세한 내용은 문제 해결을 참조하십시오.

검증이 비활성화된 경우 문제 해결

AWS DMS 작업에서 검증을 활성화하지 않은 경우 검증 전용 작업을 생성하십시오.

일회성 마이그레이션의 경우 전체 로드 검증 전용 기능을 사용하여 소스와 대상 사이의 모든 행을 빠르게 비교할 수 있습니다.

지속적 복제의 경우 CDC 검증 전용 작업을 사용하십시오. CDC 검증 전용 작업은 소스 테이블과 대상 테이블 사이에서 기존 행을 검증합니다. 변경 사항이 표시되어도 작업은 계속 진행되고, 데이터 검증 실패가 보고됩니다.

소스 및 대상 데이터의 제한 사항 확인

일치하지 않는 데이터를 식별한 후 소스와 대상에서 해당 데이터 유형과 관련된 제한 사항을 확인하십시오. 예를 들어, PostgreSQL을 소스로 사용하는 경우 ENUM 데이터 유형을 마이그레이션할 수 없습니다.

작업 로그에서 오류 확인

검증 실패 시 작업 로그에서 오류를 확인하십시오. 또는 제어 테이블을 확인하여 데이터 복제 단계에서 로깅된 예외를 볼 수 있습니다.

잘림으로 인한 데이터 불일치 해결

제한된 LOB 모드를 사용하는 경우 AWS DMS는 복제 인스턴스에 메모리를 사전 할당합니다. 그런 다음 AWS DMS는 LobMaxSize 작업 설정을 사용하여 LOB 데이터를 대량으로 로드합니다. AWS DMS는 최대 LOB 크기를 초과하는 LOB를 잘라낸 다음 로그 파일에 경고 메시지를 보냅니다.

로그 파일에서 데이터가 잘렸음을 나타내는 경고 메시지를 확인하고, 해당 LOB 열의 최대 크기를 확인하십시오. 데이터가 잘리지 않도록 LOBMaxSize를 LOB 열 크기보다 크게 정의하십시오. 진단 지원 스크립트를 사용하여 LOB 데이터가 있는 테이블을 찾고, LOB 열의 크기를 쿼리합니다.

LOB 열의 최대 크기가 100MB를 초과하는 경우 전체 LOB 또는 인라인 LOB 모드를 사용하여 LOB 열 데이터 잘림을 막으십시오.

관련 정보

검증 전용 작업

AWS DMS 작업의 소스 데이터베이스에 대한 LOB 지원 설정

AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠