AWS DMS タスクのエラー処理タスク設定を変更する方法を教えてください。
最終更新日: 2021 年 2 月 16 日
AWS Database Migration Service (DMS) のエラー処理タスク設定はどのようなものですか? レプリケーションタスクのエラー処理タスクの設定を変更する方法を教えてください。
簡単な説明
エラーが発生した場合、エラー処理設定を使用して、変更データキャプチャ (CDC) 中のレプリケーションタスクの動作を変更します。エラー処理設定は、データ操作言語 (DML) または環境エラーに基づいて、データレベル、テーブルレベルでエラーを管理できます。環境エラーには、レプリケーションインスタンスとソースまたはターゲット間の接続の問題、レプリケーションインスタンスでのリソース競合によるタスクの失敗、ソース/ターゲットが利用できないなどが含まれます。環境上の問題は断続的に発生する可能性があるため、AWS DMS は障害発生時に自動再開する機能を予約しています。
一般的なエラー処理タスクの設定とそのユースケースの次の例を参照してください。
- TableErrorPolicy は、特定のテーブルの一般データまたはメタデータに関連するエラーが発生したときに AWS DMS が実行するアクションを定義します。この設定のデフォルト値は SUSPEND_TABLE です。たとえば、AWS DMS を使用して 10 個のテーブルをソースからターゲットに移行し、テーブルの 1 つにメタデータエラーがある場合、AWS DMS はエラーがあるテーブルを停止します。その後、タスクは残りの 9 つのテーブルの移行を続行します。エラーが発生した場合に STOP_TASK を使用してタスクを停止するには、この設定を変更します。
- DataTruncationErrorPolicy は、移行中にデータが切り捨てられたときに AWS DMS が実行するアクションを定義します。この設定のデフォルト値は LOG_ERROR です。これは、エラーがタスクログに記録され、テーブルの移行が続行することを意味します。この設定を変更すると、IGNORE_RECORD、LOG_ERROR、SUSPEND_TABLE、および STOP_TASK を使用できます。IGNORE_RECORD と LOG_ERROR の違いは、IGNORE_RECORD が DataErrorEscalationCount をインクリメントすることです。これは、DataErrorEscalationPolicy がトリガーされる前に、テーブルまたはタスクのデータで発生する可能性があるエラーの最大数です。
- RecoverableErrorCount は、環境エラーが発生した場合に AWS DMS がタスクを自動的に再開する最大試行回数を定義します。この設定のデフォルト値は -1 です。これにより、AWS DMS はタスクの再開を無期限に試行できます。AWS DMS でタスクの再開を試行しない場合は、これを 0 に設定します。
利用可能な設定の詳細なリストについては、「エラー処理タスク設定」を参照してください。
解決方法
注: AWS コマンドラインインターフェイス (CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください。
AWS CLI を使用してエラー処理タスクの設定を変更します。
1. AWS DMS コンソールを開きます。
2. ナビゲーションペインで、[データベース移行タスク] を選択します。
3. 変更するタスクが実行中の場合、タスクを選択し、[アクション] を選択してから、[停止] をクリックします。
4. タスクが停止したら、タスクの名前を選択します。
5. 概要の詳細セクションから、タスクの設定 (JSON) セクションを展開します。
6. タスクの設定をコピーして JSON エディターに貼り付けます。
7. ErrorBehavior の設定を編集します。以下の設定例では、FailOnTransactionConsistencyBreached を true に、RecoverableErrorCount を 10 に設定します。
"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. modify-replication-task コマンドを、Task ARN と手順 8 で書き留めたファイルパスで実行します。
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. タスクのステータスが変更中であることを確認します。
13. タスクの名前を選択します。
14. タスクの [概要の詳細] セクションで、[タスクの設定 (JSON)] を展開し、ErrorBehavior 設定が更新されていることを確認します。