概要
Database Migration Service は、移行元データベースから Cloud SQL 移行先データベースへの継続的な移行をサポートしています。
PostgreSQL でサポートされている移行元のデータベースには次のものが含まれます。
- Amazon RDS 9.6.10 以降、10.5 以降、11.1 以降、12、13、14、15、16、17、18。
- Amazon Aurora 10.11 以降、11.6 以降、12.4 以降、13.3 以降、14.6 以降、15.2 以降、16、17、18。
- セルフマネージド(オンプレミス、またはお客様が完全に管理するクラウド VM 上)の PostgreSQL 9.4、9.5、9.6、10、11、12、13、14、15、16、17、18。
- Cloud SQL for PostgreSQL 9.6、10、11、12、13、14、15、16、17、18。
- Microsoft Azure Database for PostgreSQL フレキシブル サーバー: 11 以降
移行元を構成するには、移行元インスタンスと基盤となる移行元データベースの両方を構成する必要があります。
移行元インスタンスを構成する
移行元インスタンスを構成する手順は次のとおりです。
- 移行元が Cloud SQL の場合: プライベート IP 接続を使用する Cloud SQL インスタンスから、RFC 1918 以外のアドレス IP 範囲を使用する Cloud SQL インスタンスに移行する場合は、RFC 1918 以外の範囲を移行元 Cloud SQL インスタンスのネットワーク構成に追加します。 Cloud SQL ドキュメントの承認済みネットワークを構成する をご覧ください。
- 移行元のインスタンスに
postgresデータベースが含まれている必要があります。このデータベースがない場合は、作成します。 移行元インスタンスに
pglogicalパッケージをインストールし、shared_preload_libraries変数に含まれていることを確認します。環境の移行元インスタンスに パッケージをインストールするpglogicalをご覧ください。移行元インスタンスの拡張機能を確認します。Database Migration Service は、 Cloud SQL でサポートされていない拡張機能を移行しません。 これらの拡張機能が存在しても移行はブロックされませんが、スムーズな移行プロセスを確保するため、オブジェクトまたはアプリケーションがサポートされていない拡張機能を参照していないことを確認してください。続行する前に、移行元データベースからこれらの拡張機能と参照を削除することをおすすめします。
`pg_cron`
pg_cron拡張機能を使用する移行元の場合: `pg_cron`pg_cron拡張機能(または拡張機能に関連付けられたcron設定)は Database Migration Service によって移行されませんが、Cloud SQL for PostgreSQL の移行先ではサポートされています。移行元データベースでpg_cron拡張機能を使用している場合は、移行が完了した後に移行先インスタンスに再インストールできます。
移行元データベースを構成する
Database Migration Service は、次のデータベースを除き、移行元のインスタンス下にあるすべての データベースを移行します。
- 移行元がオンプレミスの PostgreSQL の場合: テンプレート データベース
template0とtemplate1 - 移行元が Amazon RDS の場合:
template0、template1、rdsadmin - 移行元が Cloud SQL の場合: テンプレート データベース
template0とtemplate1 - 移行元が Microsoft Azure の場合:
azure_maintenance、azure_sys、template0、template1
上記以外の移行元のインスタンスで各データベース に次の操作を行います。
PostgreSQL バージョン 9.4 の移行元の場合のみ、移行元インスタンスの各データベースに次の
pglogical拡張機能をインストールします:CREATE EXTENSION IF NOT EXISTS pglogical;CREATE EXTENSION IF NOT EXISTS pglogical_origin;
他のすべてのバージョン の場合は、移行元インスタンスの各データベースに
pglogical拡張機能のみをインストールします:CREATE EXTENSION IF NOT EXISTS pglogical。主キーがないテーブルの場合、Database Migration Service は、CDC フェーズでの初期スナップショットと
INSERTステートメントの移行 をサポートします。UPDATEステートメントとDELETEステートメントは手動で移行する必要があります。移行元のインスタンスへの接続に使用する USER(Connection Profiles ページでユーザーとして構成)には、移行した各データベースとデフォルトの
postgresデータベースに対する一定の権限が必要です。新しいユーザーを作成することも、既存のユーザーを再利用することもできます。これらの権限を設定するには、インスタンスに接続して次のコマンドを実行します。GRANT USAGE on SCHEMA SCHEMA to USER移行する各データベース上のすべてのスキーマ(情報スキーマと名前が「pg_」で始まるスキーマを除く)で実行します。GRANT USAGE on SCHEMA pglogical to PUBLIC;: 移行する各データベースで実行します。GRANT SELECT on ALL TABLES in SCHEMA pglogical to USER移行元データベースからレプリケーション情報を取得するすべてのデータベースで実行します。GRANT SELECT on ALL TABLES in SCHEMA SCHEMA to USER移行する各データベース上のすべてのスキーマ(情報スキーマと名前が「pg_」で始まるスキーマを除く)で実行します。GRANT SELECT on ALL SEQUENCES in SCHEMA SCHEMA to USER移行する各データベース上のすべてのスキーマ(情報スキーマと名前が「pg_」で始まるスキーマを除く)で実行します。- 移行元が Amazon RDS の場合は、次のコマンドを実行します。
GRANT rds_replication to USER
- 移行元が Amazon RDS でない場合は、次のコマンドを実行します。
ALTER USER USER with REPLICATIONロール
移行元のインスタンスに pglogical パッケージをインストールする
このセクションでは、移行元インスタンスに応じて pglogical パッケージと適用可能なパラメータを構成する方法について説明します。
オンプレミスまたはセルフマネージド PostgreSQL
- サーバーに pglogical パッケージをインストールする。
- インスタンスに接続し、必要に応じて次のパラメータを設定します。