[Stopped] (停止) または [Failed] (失敗) ステータスの AWS DMS タスクはいつ再起動すべきですか?

所要時間2分
0

[Stopped] (停止) または [Failed] (失敗) 状態の AWS Database Migration Service (AWS DMS) タスクがあります。レプリケーションを続行するには、いつ AWS DMS タスクを再開または再起動する必要がありますか?

簡単な説明

AWS DMS タスクが [Stopped] (停止) または [Failed] (失敗) ステータスである場合、レプリケーションを続行することを可能にする 2 つのオプションがあります。

  • [Resume] (再開) - タスクを再開すると、AWS DMS はタスクが停止または失敗する前の最終時点からレプリケーションを続行します。
  • [Restart] (再起動) - タスクを再起動すると、AWS DMS は最初からレプリケーションを開始し、タスクの作成時に選択したテーブル準備モードを使用します。例えば、テーブル準備モードには、[Drop table on target] (ターゲットにテーブルをドロップする)、[Truncate] (切り詰める)、[Do nothing] (何もしない) があります。詳細については、「Full-load task settings」(フルロードタスクの設定) を参照してください。

再開アクションと再起動アクションの動作は、3 つの AWS DMS 移行方法のうち、いずれを使用しているかによって異なります。これらの方法には、フルロード、フルロードおよび変更データキャプチャ (CDC)、および CDC のみの移行が含まれます。詳細については、「Creating a task」(タスクの作成) を参照してください。

解決方法

既存データを移行する (フルロード)

フルロードタスクの場合、タスクの作成時にタスクを手動で開始するときは、AWS DMS コンソールの再起動アクションを使用してレプリケーションを開始します。これにより、移行中のすべてのテーブルが再ロードされます。

また、テーブルデータの再ロードのオプションを使用して、移行中に失敗した特定のテーブルを再ロードすることもできます。つまり、既にロードされているテーブルは再度ロードする必要がなく、ロードが完了しなかったテーブルは再度ロードされます。

複数のテーブルを移行する際に再開オプションを使用すると、完全に完了しなかったテーブルは最初からやり直しとなります。移行が完了したテーブルに影響はありません。1 つのテーブルを移行する場合は、再開オプションを使用するのではなく、タスクを再開するのがベストプラクティスです。

既存のデータと、レプリケーションが進行中の変更を移行する (フルロードおよび CDC)

フルロードおよび CDC タスクを使用すると、AWS DMS はテーブルデータを移行し、ソースで発生するデータ変更を適用します。タスクを再起動すると、すべてのテーブルが再度ロードされ、再起動時からソースの変更のキャプチャが開始されます。タスクが [Do nothing] (何もしない) 準備モードで設定されている場合は、タスクを再起動する前にターゲットテーブルを手動で空にします。

タスクを再開すると、最終停止時点よりも後にキャプチャされた変更のみがデータベースに適用されます。CDC フェーズ中に移行タスクが停止した場合、AWS DMS は将来使用するためにチェックポイント情報を保持します。タスクのチェックポイントは、AWS DMS コンソール[Overview details] (概要の詳細) タブで確認できます。

データ変更のみをレプリケートする (CDC のみ)

CDC のみのタスクを使用する場合、現在の時刻または CDC の開始時点のいずれかの時点から、ソースデータの変更のキャプチャを開始することを選択できます。CDC の開始時点が定義されているときにタスクを再起動すると、リロードオペレーションはこの時点からのすべての変更をロードします。CDC スタートポイントなしでタスクを再開すると、タスクが停止してから再起動するまでの CDC の変更は失われます。

再開オペレーションは、CDC の開始時点の設定にかかわらず、最終停止時点から変更のレプリケートを続行します。[Truncate target table] (ターゲットテーブルを切り詰める) 準備モードでタスクを再起動すると、AWS DMS は既存のターゲットテーブルとそれらのメタデータをそのままにします。ただし、移行を再起動する前に、これらのテーブルから既存のデータをすべて削除します。

AWS DMS タスクの再開または再起動に関する一般的なシナリオ

AWS DMS タスクで再開または再起動オペレーションを使用できる一般的な例をいくつか示します。

AWS DMS タスクを再起動します。

  • ソースデータベース管理システム (DBMS) に CDC プロセスを再開するための復旧ログファイルまたはトランザクションログファイルが含まれていない場合は、タスクを再起動します。タスクを再開すると、すべてのテーブルデータがロードされ、変更のキャプチャが継続されます。
  • AWS DMS タスクが [Error] (エラー) ステータスの場合、これはタスクの 1 つ以上のテーブルが移行できなかったことを意味します。[Error] (エラー) ステータスでは、タスクは引き続き選択ルールから他のテーブルをロードしますが、[Failed] (失敗) ステータスのタスクは致命的なエラーで停止します。エラーを解決したら、テーブルを再ロードするか、タスクを再起動してエラーステータスを解決します。詳細については、「AWS DMS タスクがエラーステータスになるのはなぜですか?」を参照してください。
  • フルロードおよび CDC、または CDC のみのタスクが停止すると、データの変更がメモリからディスクにスピルする可能性があります。ディスクにスワップされた変更データの量によっては、レプリケーションを続行するためにタスクを再開するのに長い時間がかかる場合があります。これは、AWS DMS がディスクからこれらの変更を読み取るのに時間がかかるためです。そのため、可能であれば、この待ち時間を避けるためにタスクを再起動してください。
  • Oracle LogMiner と AWS DMS Binary Reader の使用を切り替える場合は、必ず CDC タスクを再起動してください。
    : CDC の方法を変更した後、CDC 復旧チェックポイントを使用して設定された CDC のみのタスクを再起動すると、次のようなエラーが表示されることがあります。
    「[SOURCE_CAPTURE ]D: Invalid context provided for the Binary Reader based CDC.Restart task is required.」([SOURCE_CAPTURE ]D: Binary Reader ベースの CDC に無効なコンテキストが指定されました。再起動タスクが必要です。)
    このエラーを解決するには、CDC の開始時点のタイムスタンプに基づいてタスクを起動します。

AWS DMS タスクを再開します。

  • 新しいレプリケーションインスタンスにタスクを移動する場合は、タスクを再開して、最終停止時点から変更のレプリケートを続行します。
  • ソースデータベースまたはターゲットデータベースをアップグレードする場合は、これらのデータベースで実行されている AWS DMS タスクをすべて停止します。アップグレードが完了したら、タスクを再開します。
  • ソースデータベースまたはターゲットデータベースをアップグレードする場合は、これらのデータベースで実行されている AWS DMS タスクをすべて停止します。アップグレードが完了したら、タスクを再開します。ただし、PostgreSQL エンジンのバージョンアップグレードを実行するには、レプリケーションスロットをインスタンスに配置することはできません。そのため、エンジンをアップグレードする前にレプリケーションスロットをすべてドロップしてから、タスクを再起動してレプリケーションスロットを再作成します。

関連情報

Sources for data migration (データ移行のソース)

Working with an AWS DMS replication instance (AWS DMS レプリケーションインスタンスを使用する)

Rebooting a replication instance (レプリケーションインスタンスを再起動する)

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ