概要
Database Migration Service は、移行元のデータベースから Cloud SQL 移行先データベースへの継続的な移行をサポートしています。
Cloud SQL for PostgreSQL でサポートされている移行先データベースには、次のバージョンがあります。
- Cloud SQL for PostgreSQL 12、13、14、15。
移行先の Cloud SQL for PostgreSQL データベースを構成する
Database Migration Service を使用して移行先データベースにデータを移行する前に、次のようにデータベースを構成する必要があります。
- インスタンスを作成する。少なくともデュアルコア CPU を搭載したマシンタイプをおすすめします。たとえば、マシン名が
db-custom
で、2 個の CPU と 3,840 MB の RAM を搭載している場合、マシンタイプ名の形式はdb-custom-2-3840
になります。 - パブリック IP アドレスを使用して移行先インスタンスに接続する場合、Database Migration Service は Cloud SQL Auth Proxy を使用してインスタンスに接続します。そのためには、次の条件を満たしている必要があります。
- インスタンスにパブリック IPv4 アドレスが必要です。
- パブリック IP アドレスがすべての外部アドレスからアクセス可能である必要はありません(承認済みネットワークのアドレスとして追加する必要はありません)。
- プライベート IP アドレスを使用して移行先インスタンスに接続する場合、Database Migration Service は Private Service Connect を使用してインスタンスに接続します。詳細については、移行先インスタンスの Private Service Connect を構成するをご覧ください。
同じ名前でインスタンスにユーザー アカウントとデータベースを作成します。たとえば、Database Migration Service を使用して
myapp
データベースにデータを移行する場合は、ユーザー アカウントの名前もmyapp
にする必要があります。- データベースに対するユーザーの権限を設定します。
CREATE SCHEMA
CREATE TABLE
CREATE DATABASE
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
(すべてのテーブル用)
- (外部キーまたはトリガーを含むデータベースの場合)移行ユーザー アカウントで
REPLICATION
オプションを使用して、外部キーとトリガーをスキップします。以下のコマンドを実行します。 外部キーとトリガーの移行方法の詳細については、 外部キーとトリガーに関する考慮事項をご覧ください。ALTER USER MIGRATION_USER_NAME WITH replication;
外部キーとトリガーに関する考慮事項
移行元データベースに存在する外部キーとトリガーにより、データの整合性の問題が発生したり、移行ジョブが失敗したりする可能性があります。移行ユーザーの REPLICATION
オプションを使用して外部キーとトリガーをスキップすると、これらの問題を回避できます。または、移行先データベースの外部キーとトリガーをすべて削除し、移行が完了したら再作成することもできます。
- トリガー
- Database Migration Service によって複製されたデータには、ソース データベースでトリガーによって行われた変更がすでに組み込まれています。移行先でトリガーが有効になっている場合、トリガーが再びトリガーされ、データが操作され、データの整合性や重複の問題が発生する可能性があります。
- 外部キー
- Database Migration Service はトランザクション モードでデータを複製しないため、テーブルが順序どおりに移行されない可能性があります。外部キーが存在し、外部キーを使用する子テーブルが親テーブルの前に移行された場合、レプリケーション エラーが発生する可能性があります。