での同種データ移行による PostgreSQL データベースからのデータの移行 AWS DMS - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

での同種データ移行による PostgreSQL データベースからのデータの移行 AWS DMS

を使用して同種データ移行、セルフマネージド型の PostgreSQL データベースを RDS for PostgreSQL または Aurora Postgre に移行できますSQL。 AWS DMS は、データ移行用のサーバーレス環境を作成します。さまざまなタイプのデータ移行の場合、 AWS DMS は、さまざまなネイティブ PostgreSQL データベースツールを使用します。

フルロードタイプの同種データ移行の場合、 AWS DMS は pg_dump を使用してソースデータベースからデータを読み取り、サーバーレス環境にアタッチされたディスクに保存します。後 AWS DMS はすべてのソースデータを読み取り、ターゲットデータベースの pg_restore を使用してデータを復元します。

ロードおよび変更データキャプチャ (CDC) タイプの同種データ移行の場合、 AWS DMS は pg_dump を使用して、ソースデータベースからテーブルデータなしでスキーマオブジェクトを読み取り、サーバーレス環境にアタッチされたディスクに保存します。次に、ターゲットデータベースpg_restoreの を使用してスキーマオブジェクトを復元します。後 AWS DMS はpg_restoreプロセスを完了し、ソースデータベースからターゲットデータベースに初期テーブルデータを直接コピーするInitial Data Synchronizationオプションを使用して、論理レプリケーションのためにパブリッシャーモデルとサブスクライバーモデルに自動的に切り替え、継続的なレプリケーションを開始します。このモデルでは、単一または複数のサブスクライバーがパブリッシャノード上の単独または複数のパブリケーションにサブスクライブします。

変更データキャプチャ (CDC) タイプの同種データ移行の場合、 AWS DMS では、レプリケーションを開始するためにネイティブ開始ポイントが必要です。ネイティブ開始点を指定すると、 AWS DMS は、その時点からの変更をキャプチャします。または、データ移行設定で [すぐに] を選択すると、実際のデータ移行の開始時にレプリケーションの開始点を自動的にキャプチャできます。

注記

のみCDCの移行を適切に機能させるには、すべてのソースデータベーススキーマとオブジェクトがターゲットデータベースに既に存在している必要があります。ただし、ターゲットにはソースには存在しないオブジェクトが含まれている場合があります。

次のコード例を使用して、PostgreSQL データベースのネイティブ開始点を取得できます。

select confirmed_flush_lsn from pg_replication_slots where slot_name=‘migrate_to_target';

このクエリは、PostgreSQL データベースの pg_replication_slotsビューを使用して、ログシーケンス番号 (LSN) 値をキャプチャします。

後 AWS DMS は、PostgreSQL 同種データ移行のステータスを Stopped Failed 、または Deleted に設定します。パブリッシャーとレプリケーションは削除されません。移行を再開しない場合は、次のコマンドを使用してレプリケーションスロットとパブリッシャーを削除します。

SELECT pg_drop_replication_slot('migration_subscriber_{ARN}'); DROP PUBLICATION publication_{ARN};

次の図は、 で同種データ移行を使用するプロセスを示しています。 AWS DMS PostgreSQL データベースを RDS for PostgreSQL または Aurora Postgre に移行しますSQL。

DMS 同種データ移行を使用した PostgreSQL データ移行のアーキテクチャ図。

同種データ移行のソースとして PostgreSQL データベースを使用するためのベストプラクティス

  • FLCDC タスクのサブスクライバー側で初期データ同期を高速化するには、 max_logical_replication_workersと を調整する必要がありますmax_sync_workers_per_subscription。これらの値を増やすと、テーブルの同期速度が向上します。

    • max_logical_replication_workers – 論理レプリケーションワーカーの最大数を指定します。これには、サブスクライバー側の適用ワーカーとテーブル同期ワーカーの両方が含まれます。

    • max_sync_workers_per_subscription – 増加すると、テーブルあたりのワーカー数ではなく、並列に同期されるテーブルの数max_sync_workers_per_subscriptionにのみ影響します。

    注記

    max_logical_replication_workers は を超えないようにしmax_worker_processes、 以下max_sync_workers_per_subscriptionである必要がありますmax_logical_replication_workers

  • 大きなテーブルを移行する場合は、選択ルールを使用してそれらを別々のタスクに分割することを検討してください。例えば、大きなテーブルを個別のタスクに分割し、小さなテーブルを別のタスクに分割できます。

  • サブスクライバー側でディスクとCPU使用状況を監視して、最適なパフォーマンスを維持します。