PostgreSQL の移行前提条件の構成
PostgreSQL ソースデータベースから移行ジョブを実行するには、データベースの構成変更が必要になる場合があります。 Relational Migratorでデータベースの構成変更が必要と判断された場合は、必要な変更を伴うSQLスクリプトが自動的に生成されます。データベース管理者(DBA)にこのスクリプトのコマンドを確認し、データベースサーバー上で実行させることをお勧めします。これらの手順により、両方のタイプの移行ジョブに対して PostgreSQL を構成します。
スナップショット移行ジョブはすべてのデータを移行し、その後停止します。
継続的な移行ジョブはスナップショットを実行し、その後 CDC ステージに入り、データ変更を継続的に複製します。
始める前に
PostgreSQL がクラスターとして構成されている場合、Relational Migrator はマスター サーバーに接続する必要があります。
手順
PostgreSQL に対するスナップショット ジョブの場合、サービス アカウントにはスキーマ USAGE
とテーブルSELECT
権限が必要です。
GRANT USAGE ON SCHEMA <schema_name> TO <database_user_name>; GRANT SELECT ON TABLE <schema_name>.<table_name> TO <database_user_name>;
論理レプリケーションの有効化
論理レプリケーションは、デフォルトでは有効になっていない場合があります。 論理レプリケーションを有効にするには、 wal_level を変更します postgresql.conf 構成ファイル 内の 構成 。構成ファイルを変更した後、データベースインスタンスを再起動する必要があります。
wal_level = logical
Amazon Web Services RDS でホストされている PostgreSQL を使用している場合は、rds.logical_replication
パラメータを 1
に設定する必要があります。 詳細については、「 での論理レプリケーションの有効 化 」を参照してくださいAmazon Web Services 。パラメーターを設定した後、データベースインスタンスを再起動する必要があります。
Tip
次のクエリを使用して、 Amazon Web Services RDS インスタンスで論理レプリケーションが有効になっているかどうかを確認できます。
SELECT name,setting FROM pg_settings WHERE name IN ('wal_level','rds.logical_replication');
SQL レプリケーション ロールの作成
REPLICATION
とLOGIN
データベース権限を持つロールを作成します。CREATE ROLE <role> REPLICATION LOGIN; ロールにテーブル
SELECT
とスキーマUSAGE
権限を付与します。 移行内の各テーブルにはGRANT SELECT
ステートメントが必要です。GRANT USAGE ON SCHEMA <schema> TO <role>; GRANT SELECT ON <schema>.<table> TO <role>; -- ADDITIONAL GRANT SELECT STATEMENTS... サービス アカウントへのロールの付与
<original_owner>
を参加テーブルの所有者に置き換えます。GRANT <role> TO <original_owner>; GRANT <role> TO <database_user_name>;
詳細
Relational Migrator は、行レベルの変更をキャプチャするためにオープンソースの Debezium コネクターに依存しています。 詳細については、「 Debezium PostgreSQL 」を参照してください。