AWS DMS タスクのエラー処理タスク設定を変更する方法を教えてください。

最終更新日: 2019 年 9 月 27 日

AWS Database Migration Service (AWS 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_RECORDLOG_ERRORSUSPEND_TABLE、および STOP_TASK を使用できます。IGNORE_RECORDLOG_ERROR の違いは、IGNORE_RECORDDataErrorEscalationCount をインクリメントすることです。これは、DataErrorEscalationPolicy がトリガーされる前に、テーブルまたはタスクのデータで発生する可能性があるエラーの最大数です。
  • RecoverableErrorCount は、環境エラーが発生した場合に AWS DMS がタスクを自動的に再開する最大試行回数を定義します。この設定のデフォルト値は -1 です。これにより、AWS DMS はタスクの再開を無期限に試行できます。AWS DMS でタスクの再開を試行しない場合は、これを 0 に設定します。

利用可能な設定の詳細なリストについては、「エラー処理タスク設定」を参照してください。

解決方法

AWS コマンドラインインターフェイス (AWS CLI) を使用して、次のようにエラー処理タスクの設定を変更します。

1.    AWS DMS コンソールを開きます。

2.    ナビゲーションペインで、[データベース移行タスク] を選択します。

3.    変更するタスクが実行中の場合、タスクを選択し、[アクション] を選択してから、[停止] をクリックします。

4.    タスクが停止したら、タスクの名前を選択します。

5.    概要の詳細セクションから、タスクの設定 (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.    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 コンソール に戻り、ナビゲーションペインから [データベース移行タスク] を選択します。

12.    タスクのステータスが変更中であることを確認します。

13.    タスクの名前を選択します。

14.    タスクの [概要の詳細] セクションで、[タスクの設定 (JSON)] を展開し、ErrorBehavior 設定が更新されていることを確認します。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合