AWS Database Migration Service (AWS DMS) タスクが停止し、再試行が行われないためトラブルシューティングしたいです。
解決策
AWS DMS は、自己回復を目的としたマネージドサービスです。問題が発生すると、AWS DMS は問題の修正を試行し、運用を再開します。移行が停止して再試行されない場合、致命的または回復可能なエラーが発生する可能性があります。
致命的なエラー
AWS DMS でエラーが発生し、AWS DMS の移行が停止した場合、タスクは停止し、FAILED 状態になります。次のいずれかの問題により、致命的なエラーが発生する可能性があります。
- ソースエンドポイントが設定されていない。ソースエンドポイントは移行の前提条件です。
- AWS DMS レプリケーションインスタンスが、ソースデータベースからソースオブジェクトを取得していない。
タスクログに、次のようなエラーメッセージが表示される場合があります。
「2022-05-28T16:07:35 [TASK_MANAGER ]E: Task 'K7YJOFK7GYXIK44C2KLGFNG7ZONLZGPWPD5RWHA' encountered a fatal error」
AWS DMS で致命的なエラーが発生すると、AWS DMS は 6 回再起動を試みます。タスクが再試行されない場合は、AWS DMS は既に 6 回の再起動を試みたことになります。
回復可能なエラー
AWS DMS では、すべての環境エラーは回復可能なエラーです。タスクまたはレプリケーションインスタンスで環境エラーが発生すると、タスクは中断されます。タスクが回復すると、再試行されます。回復可能なエラーの例を次に示します。
- ソースまたはターゲットデータベースへの AWS DMS レプリケーションインスタンスの接続が中断された。
- レプリケーションインスタンスがメンテナンスにより再起動した。
タスクログに、次のようなエラーメッセージが表示される場合があります。
「Last Error Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2673] [1022502] Stop Reason RECOVERABLE_ERROR Error Level RECOVERABLE」
デフォルトでは、回復可能なエラーが発生したタスクは再起動を試みます。RecoverableErrorCount パラメータで、AWS DMS で環境エラーが発生したときにタスクを再開する最大試行回数を設定します。システムがタスクの再開を指定された回数試行した後、タスクは停止し、手動による操作が必要になります。詳細については、「エラー処理タスクの設定」を参照してください。
回復可能なエラーによりタスクが停止し、そのタスクが再試行されなくなった場合は、RecoverableErrorCount がカスタム値に設定されているかどうかを確認します。
注: RecoverableErrorCount の値が 0 に設定されている場合、タスクは再開されません。
また、レプリケーションインスタンスがダウンしていないか確認してください。
次の値の設定がデフォルト値と異なる場合、AWS DMS タスクの再試行が行われない可能性があります。
"ErrorBehavior": {
"FailOnNoTablesCaptured": false,
"ApplyErrorUpdatePolicy": "LOG_ERROR",
"FailOnTransactionConsistencyBreached": false,
"RecoverableErrorThrottlingMax": 1800,
"DataErrorEscalationPolicy": "SUSPEND_TABLE",
"ApplyErrorEscalationCount": 0,
"RecoverableErrorStopRetryAfterThrottlingMax": false,
"RecoverableErrorThrottling": true,
"ApplyErrorFailOnTruncationDdl": false,
"DataTruncationErrorPolicy": "LOG_ERROR",
"ApplyErrorInsertPolicy": "LOG_ERROR",
"EventErrorPolicy": "IGNORE",
"ApplyErrorEscalationPolicy": "LOG_ERROR",
"RecoverableErrorCount": -1,
"DataErrorEscalationCount": 0,
"TableErrorEscalationPolicy": "STOP_TASK",
"RecoverableErrorInterval": 5,
"ApplyErrorDeletePolicy": "IGNORE_RECORD",
"TableErrorEscalationCount": 0,
"FullLoadIgnoreConflicts": true,
"DataErrorPolicy": "LOG_ERROR",
"TableErrorPolicy": "SUSPEND_TABLE"
},
注: STOP_TASK 値の設定には手動による操作が必要です。
関連情報
AWS Database Migration Service での移行タスクのトラブルシューティング