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 」を参照してください。