AWS DMS 작업에 대한 오류 처리 작업 설정을 수정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 9월 27일

AWS Database Migration Service(AWS DMS)의 오류 처리 작업 설정은 무엇입니까? 복제 작업에 대한 오류 처리 작업 설정을 수정하려면 어떻게 해야 합니까?

간략한 설명

오류 처리 설정을 사용하여 오류 발생 시 변경 데이터 캡처(CDC) 중에 복제 작업의 동작을 변경합니다. 오류 처리 설정은 데이터 조작 언어(DML) 또는 환경 오류를 기반으로 데이터 수준, 테이블 수준에서 오류를 관리할 수 있습니다. 환경 오류에는 복제 인스턴스와 원본 또는 대상 간의 연결 문제, 복제 인스턴스에서 리소스 경합으로 인한 작업 실패, 원본/대상을 사용할 수 없음 등이 포함됩니다. 환경 문제가 간헐적으로 발생할 수 있으므로 AWS DMS는 장애 발생 시 자동 재개 기능을 예약합니다.

다음 일반적인 오류 처리 작업 설정 및 사용 사례의 예를 참조하십시오.

  • TableErrorPolicy는 특정 테이블의 일반 데이터 또는 메타데이터와 관련된 오류가 있을 때 AWS DMS에서 수행하는 작업을 정의합니다. 이 설정의 기본값은 SUSPEND_TABLE입니다. 예를 들어, AWS DMS를 사용하여 원본에서 대상으로 테이블 10개를 마이그레이션하고 테이블 중 하나에 메타데이터 오류가 있는 경우 AWS DMS는 오류와 함께 테이블을 일시 중지합니다. 그런 다음 작업은 나머지 9개 테이블을 계속 마이그레이션합니다. 오류가 있는 경우STOP_TASK를 사용하여 작업을 중지하도록 이 설정을 수정합니다.
  • DataTruncationErrorPolicy는 마이그레이션 중 데이터가 잘릴 때 AWS DMS에서 수행하는 작업을 정의합니다. 이 설정의 기본값은 LOG_ERROR입니다. 즉, 작업 로그에 오류가 기록되고 테이블 마이그레이션이 계속됩니다. IGNORE_RECORD, LOG_ERROR, SUSPEND_TABLESTOP_TASK를 사용하도록 이 설정을 수정할 수 있습니다. IGNORE_RECORDLOG_ERROR의 차이점은 IGNORE_RECORDDataErrorEscalationCount를 증분 시킨다는 것입니다. DataErrorEscalationPolicy가 트리거되기 전에 테이블 또는 작업의 데이터에서 발생할 수 있는 최대 오류 수입니다.
  • RecoverableErrorCount는 환경 오류가 발생할 경우 AWS DMS가 작업을 자동으로 재개하기 위해 수행하는 최대 시도 횟수를 정의합니다. 이 설정의 기본값은 -1이며, 이 경우 AWS DMS가 작업을 무기한으로 다시 시작하려고 시도할 수 있습니다. AWS DMS가 작업을 다시 시작하지 않도록 하려면 이 값을 0으로 설정합니다.

사용 가능한 설정의 전체 목록은 오류 처리 작업 설정을 참조하십시오.

해결 방법

AWS 명령줄 인터페이스(AWS CLI)를 사용하여 오류 처리 작업 설정을 수정합니다.

1.    AWS DMS 콘솔을 엽니다.

2.    탐색 창에서 [Database migration tasks]를 선택합니다.

3.    수정하려는 작업이 실행 중이면, [Actions]를 선택한 후 [Stop]을 선택합니다.

4.    작업이 중지된 후 작업 이름을 선택합니다.

5.    [Overview details] 섹션에서 [Task settings(JSON)] 섹션을 확장합니다.

6.    작업 설정을 복사하여 JSON 편집기에 붙여 넣습니다.

7.    [ErrorBehavior]에서 설정을 편집합니다. 다음 예제 설정은 FailOnTransactionConsistencyBreachedtrue로 설정하고 RecoverableErrorCount10으로 설정합니다.

"ErrorBehavior": {
        "DataErrorPolicy": "LOG_ERROR",
        "DataTruncationErrorPolicy": "LOG_ERROR",
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",
        "DataErrorEscalationCount": 0,
        "TableErrorPolicy": "SUSPEND_TABLE",
        "TableErrorEscalationPolicy": "STOP_TASK",
        "TableErrorEscalationCount": 0,
        "RecoverableErrorCount": 10,
        "RecoverableErrorInterval": 5,
        "RecoverableErrorThrottling": true,
        "RecoverableErrorThrottlingMax": 1800,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",
        "ApplyErrorInsertPolicy": "LOG_ERROR",
        "ApplyErrorUpdatePolicy": "LOG_ERROR",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",
        "ApplyErrorEscalationCount": 0,
        "ApplyErrorFailOnTruncationDdl": false,
        "FullLoadIgnoreConflicts": true,
        "FailOnTransactionConsistencyBreached": true,  
        "FailOnNoTablesCaptured": false

8.    JSON 파일을 저장하고 나중에 사용할 수 있도록 작업 ARN 및 파일 경로를 적어 둡니다.

9.    아직 설치하지 않은 경우, AWS CLI의 최신 버전을 설치하고 구성합니다.

10.    8단계에서 적어 둔 작업 ARN과 파일 경로를 사용하여 [modify-replication-task] 명령을 실행합니다.

Linux 예제

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://your-task-settings.json

Windows 예제

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://"c:\temp\your-task-settings.json"

11.    AWS DMS 콘솔로 돌아가 탐색 창에서 [Database migration tasks]를 선택합니다.

12.    작업 상태가 Modifying인지 확인합니다.

13.    작업 이름을 선택합니다.

14.    작업에 대한 [Overview details] 섹션에서 [Task Settings (JSON)]을 확장하고 ErrorBehavior 설정이 업데이트되었는지 확인합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?