スキップしてコンテンツを表示

Stopped または Failed ステータスになった AWS DMS タスクを再開するタイミングを知りたいです。

所要時間1分
0

AWS Database Migration Service (AWS DMS) タスクの状態が Stopped または Failed になっています。レプリケーションを続行するために、AWS DMS タスクを再開または再起動するタイミングを教えてください。

簡単な説明

AWS DMS タスクのステータスが Stopped または Failed になっている場合、2 通りの方法でレプリケーションを続行できます。

  • 再開 - タスクを再開すると、AWS DMS はタスクの停止または失敗が起こった前の、最新の時点からレプリケーションを続行します。
  • 再起動 - タスクを再起動すると、AWS DMS はレプリケーションを最初から開始し、タスクを作成したときに選択したテーブル準備モードを使用します。テーブル準備モードには、「ターゲットのテーブルをドロップ」、「切り捨て」、「何もしない」などがあります。詳細については、「フルロードタスクの設定」を参照してください。

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

解決策

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

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

テーブルデータのリロードオプションを使用して、移行中に障害が発生した特定のテーブルをリロードすることもできます。この場合は、既にロードされているテーブルをリロードする必要はなく、ロードが完了していないテーブルはリロードされます。

複数のテーブルの移行中に再開オプションを使用した場合、完全に完了しなかったテーブルで再試行が行われます。移行が完了したテーブルは影響を受けません。単一のテーブルを移行する場合は、再開オプションを使用するのではなく、タスクを再起動することをおすすめします。

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

フルロードおよび CDC タスクを使用すると、AWS DMS はテーブルデータを移行してから、ソースで発生したデータ変更を適用します。タスクを再起動した場合は、すべてのテーブルがリロードされ、再起動時点からのソースの変更キャプチャが開始されます。タスクが「何もしない」準備モードで構成されている場合は、そのタスクを再起動する前に、ターゲットテーブルを手動で空にしてください。

タスクを再開した場合は、最後の停止時点以降にキャプチャされた変更のみがデータベースに適用されます。CDC フェーズ中に移行タスクが停止した場合、AWS DMS は今後の使用に備えてチェックポイント情報を保持します。タスクのチェックポイントは、AWS DMS コンソール[概要の詳細] タブで確認できます。

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

CDC のみのタスクを使用する場合は、現在または CDC の開始時点からソースデータの変更キャプチャを開始できます。CDC の開始時点を定義してタスクを再開すると、リロード操作によってこの時点以降のすべての変更がロードされます。CDC の開始時点を設定せずにタスクを再開すると、タスクが停止されてから再開されるまでに発生した CDC の変更は失われます。

再開操作では、CDC 開始時点の設定に関係なく、最後の停止時点から変更のレプリケーションが継続されます。「切り捨て」ターゲットテーブル準備モードでタスクを再起動した場合、AWS DMS は既存のターゲットテーブルとそのメタデータを保持しますが、移行を再開する前に、これらのテーブルから既存のすべてのデータを削除します。

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

AWS DMS タスクで再開または再起動操作を使用できる一般的な例を数点示します。

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

  • ソースデータベース管理システム (DBMS) に CDC プロセスを再開するための復元ログファイルまたはトランザクションログファイルが含まれていない場合は、タスクを再起動してください。タスクを再起動すると、すべてのテーブルデータがロードされ、変更キャプチャが続行されます。
  • AWS DMS タスクのステータスが Error の場合は、タスク内の 1 つ以上のテーブルを移行できなかったことが示唆されます。ステータスが Error の場合は、タスクは引き続き、選択ルールから他のテーブルをロードします。ただし、タスクのステータスが Failed の場合は、重大なエラーにより停止します。エラーを解決した後、テーブルをリロードするか、タスクを再起動してエラーステータスを解決します。詳細については、「AWS DMS タスクが Error ステータスになっている理由を知りたいです」を参照してください。
  • フルロードおよび 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. (Binary Reader ベースの CDC に無効なコンテキストが指定されています)Restart task is required. (再起動タスクが必要です)」
    このエラーを解決するには、CDC 開始時点のタイムスタンプに基づいてタスクを開始してください。

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

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

関連情報

データ移行のソース

AWS DMS レプリケーションインスタンスを使用する

レプリケーションインスタンスの再起動

AWS公式更新しました 3年前