AWS DMS 태스크가 재시도되지 않는 이유는 무엇입니까?

3분 분량
0

중지되었지만 재시도되지 않는 AWS Database Migration Service(AWS DMS) 태스크가 있습니다. AWS DMS 태스크의 작업을 재개하려면 어떻게 해야 합니까?

해결 방법

AWS DMS는 자가 복구 동작을 수행하도록 설계된 관리형 서비스입니다. 즉, 문제가 발생하면 AWS DMS가 문제 해결을 시도한 다음 사용자가 조치를 취하지 않아도 작업을 재개합니다. 그러나 마이그레이션이 중지되고 재시도되지 않는 경우도 있습니다.

먼저, AWS DMS를 사용할 때 발생할 수 있는 두 가지 유형의 오류를 이해하는 것이 중요합니다.

  • 치명적 오류
  • 복구 가능한 오류

치명적 오류

AWS DMS에서 마이그레이션 진행을 중지하는 오류가 발생하면 태스크가 중지되고 FAILED 상태가 됩니다. 이를 치명적 오류라고 합니다. 예를 들면 다음과 같습니다.

  • 소스 엔드포인트가 구성되지 않았으며, 이는 마이그레이션을 위한 전제 조건입니다.
  • AWS DMS 복제 인스턴스는 소스 데이터베이스에서 소스 객체를 가져오지 않습니다.

태스크 로그에 다음과 유사한 메시지가 표시됩니다.

"2022-05-28T16:07:35 [TASK_MANAGER    ]E:  태스크 'K7YJOFK7GYXIK44C2KLGFNG7ZONLZGPWPD5RWHA'에 치명적인 오류가 발생했습니다"

AWS DMS에서 치명적인 오류가 발생하면 재시작을 6회 시도합니다. 태스크가 더 이상 재시도되지 않는 경우 이러한 시도가 이미 완료되었을 수 있습니다.

복구 가능한 오류

AWS DMS는 모든 환경 오류를 복구 가능한 오류로 간주합니다. 따라서 태스크 또는 복제 인스턴스에서 환경 오류가 발생하면 태스크가 중단되지만 스스로 복구된 다음 다시 시도합니다.

복구 가능한 오류의 예는 다음과 같습니다.

  • 소스/대상 데이터베이스에 대한 AWS DMS 복제 인스턴스 연결이 중단되었습니다.
  • 유지 관리로 인해 복제 인스턴스가 다시 시작되었습니다.

태스크 로그에 다음과 유사한 메시지가 표시됩니다.

"하위 태스크 0, 스레드 0에서 수신한 마지막 오류 태스크 오류 알림 [reptask/replicationtask.c:2673] [1022502] 중지 이유 RECOVERABLE_ERROR 오류 수준 RECOVERABLE"

기본적으로 복구 가능한 오류가 있는 작업은 무기한으로 재시도를 시도합니다. RecoverableErrorCount 설정은 이 동작을 제어합니다. 이 파라미터에 환경 오류가 발생할 경우 AWS DMS가 태스크를 다시 시작하려고 시도하는 최대 횟수를 설정합니다. 시스템에서 지정된 횟수만큼 태스크를 다시 시작하려고 하면 태스크가 중지되고 수동 개입이 필요합니다. 기본값은 -1이며, 이는 AWS DMS가 태스크를 무기한 다시 시작한다는 것을 의미합니다.

복구 가능한 오류로 인해 태스크가 중지되고 더 이상 재시도하지 않는 경우 다음 사항을 확인합니다.

  • RecoverableErrorCount 파라미터가 사용자 지정 값으로 설정되어 있습니다.
  • 복제 인스턴스 자체가 다운되었습니다.

기본값이 아닌 다른 설정으로 인해 재시도가 금지되는지 확인

이러한 설정을 기본값이 아닌 값으로 설정하면 AWS DMS 태스크가 재시도되지 않을 수 있습니다.

"ErrorBehavior": {
        "FailOnNoTablesCaptured": false,
        "ApplyErrorUpdatePolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "FailOnTransactionConsistencyBreached": false,
        "RecoverableErrorThrottlingMax": 1800,
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",  --- can be set to STOP_TASK
        "ApplyErrorEscalationCount": 0,
        "RecoverableErrorStopRetryAfterThrottlingMax": false,
        "RecoverableErrorThrottling": true,
        "ApplyErrorFailOnTruncationDdl": false,
        "DataTruncationErrorPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "ApplyErrorInsertPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "EventErrorPolicy": "IGNORE",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "RecoverableErrorCount": -1,
        "DataErrorEscalationCount": 0,
        "TableErrorEscalationPolicy": "STOP_TASK",
        "RecoverableErrorInterval": 5,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",  --- can be set to STOP_TASK
        "TableErrorEscalationCount": 0,
        "FullLoadIgnoreConflicts": true,
        "DataErrorPolicy": "LOG_ERROR",
        "TableErrorPolicy": "SUSPEND_TABLE"
    },

관련 정보

태스크 설정을 처리하는 중 오류 발생

AWS Database Migration Service의 마이그레이션 태스크 문제 해결

AWS 공식
AWS 공식업데이트됨 2년 전