このページでは、移行ジョブの構成時に Database Migration Service が作成する新しい AlloyDB for PostgreSQL クラスタにデータベースを移行する方法について説明します。移行の要件が異なる場合は、別の移行フローを検討してください。詳細については、 ガイド: 既存の AlloyDB for PostgreSQL クラスタに移行するをご覧ください。
継続的な移行の手順は、大まかに次のとおりです。
- Database Migration Service が新しいデータベースにデータを複製できるように、移行元データベースを構成します。
- ソース接続プロファイルを作成します。
- 継続的な移行ジョブを作成し、新しい移行先の AlloyDB for PostgreSQL クラスタを構成します。
- 継続的な移行ジョブを開始してモニタリングする。
- 移行ジョブをプロモートし、権限を監査して、アプリケーション トラフィックを新しいクラスタにリダイレクトします。
費用
このドキュメントでは、課金対象である次のGoogle Cloudコンポーネントを使用します。
- AlloyDB for PostgreSQL( AlloyDB for PostgreSQL の料金をご覧ください)。
- 顧客管理の暗号鍵(CMEK)の保存に使用する場合: Cloud Storage( Cloud Storage の料金をご覧ください)。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
- この移行パスがシナリオを完全にサポートできるかどうかを確認します。次のページをご覧ください。
- シナリオの概要ページの サポートされている移行元と移行先に、サポートされているすべての移行元と移行先のバージョンが一覧表示されます。
- 既知の制限事項では、サポートされているデータ型、データベース サイズ、その他の運用上の境界について説明しています。AlloyDB for PostgreSQL の Database Migration Service は、継続的な移行をサポートしています。
-
移行元のデータベースに応じて、さまざまなネットワーク接続方法を使用できます。移行手順を開始する前に、ネットワーク接続を計画します。詳細については、 ネットワーキングの概要をご覧ください。
新しい宛先クラスタへの移行では、Private Service Connect インターフェースの接続はサポートされていません。Private Service Connect インターフェース接続を使用する場合は、AlloyDB for PostgreSQL で移行先クラスタを直接事前に作成することを検討してください( ガイド: 既存の AlloyDB for PostgreSQL クラスタに移行するをご覧ください)。
- 宛先データベースを作成するリージョンを検討します。Database Migration Service は完全にリージョンに依存するプロダクトです。つまり、移行に関連するすべてのエンティティ(移行元の接続プロファイル、移行ジョブ、移行先のクラスタ)は、1 つの Google Cloud リージョンに存在する必要があります。
- Google Cloud コンソールのプロジェクト セレクタ ページで、 Google Cloud プロジェクトを選択または作成します。
- Database Migration Service、AlloyDB for PostgreSQL、Compute Engine の API を有効にします。
必要なロール
Database Migration Service を使用して AlloyDB for PostgreSQL への同種の PostgreSQL 移行を実行するために必要な権限を取得するには、プロジェクトに対する必要な IAM ロールを付与するよう管理者に依頼してください。
-
データベース移行管理者(
roles/datamigration.admin) -
AlloyDB 管理者(
roles/alloydb.admin)
ロールの付与の詳細については、Identity and Access Management のドキュメントの アクセスを管理するをご覧ください。
これらの事前定義ロールには、Database Migration Service を使用して PostgreSQL から AlloyDB for PostgreSQL への同種移行を実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service を使用して PostgreSQL から AlloyDB for PostgreSQL への同種移行を行うには、次の権限が必要です。
datamigration.*alloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.delete
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
ソース データベースを準備する
移行元データベースを移行用に準備する手順は次のとおりです。
-
移行元のネットワーク接続方法を選択して構成する。
パブリック IP 許可リスト接続の場合: 後で、Database Migration Service が移行先クラスタを作成した後、AlloyDB for PostgreSQL の送信 IP アドレスをファイアウォールの許可リストに追加する必要がある場合があります。このような構成変更をスケジュールする最適な方法については、ネットワーク管理者にお問い合わせください。
- ソース データベース インスタンスを構成します。大まかな手順は次のとおりです。
- 移行元のデータベースと、移行対象のすべてのデータベースに
pglogicalPostgreSQL 拡張機能(バージョン 2.2.1 以降)をインストールします。 - PostgreSQL パラメータを構成します。
wal_level = logicalを設定し、max_replication_slots、max_wal_senders、max_worker_processesに適切な値を設定します。 - 移行ユーザーにレプリケーション権限を付与し、受信接続を許可するように
pg_hba.confを構成します。
詳細な手順については、 移行元データベースを構成するをご覧ください。
- 移行元のデータベースと、移行対象のすべてのデータベースに
- ソース接続プロファイルを作成する。
移行ジョブを作成して実行する
移行を構成して実行する手順は次のとおりです。
- 省略可: 宛先クラスタに独自の暗号鍵を管理する場合は、 顧客管理の暗号鍵(CMEK)を準備します。
-
移行ジョブを作成して実行します。
Database Migration Service のオブザーバビリティ機能を使用して、移行の進行状況と移行先クラスタの健全性をモニタリングできます。 移行ジョブの指標をご覧ください。
移行を完了する
アプリケーション トラフィックを新しい AlloyDB for PostgreSQL クラスタに切り替える場合は、次の手順で移行を完了します。
- 移行元データベースに対するすべての書き込みオペレーションを停止します。ソース データベースを読み取り専用モードに設定すると、カットオーバー期間中もクエリ機能を維持できます。
- 移行ジョブをプロモートします。移行ジョブをプロモートすると、残りの CDC イベントのレプリケーションが完了し、レプリケーション ストリームが切断され、移行先の AlloyDB for PostgreSQL クラスタが独立した完全に動作するプライマリ クラスタとして確立されます。
- 省略可: 移行データを検証して、完全性と整合性を確認します。
次のステップ
AlloyDB for PostgreSQL のアーキテクチャ、機能、管理の詳細。 AlloyDB for PostgreSQL の概要をご覧ください。