pgsql2pgsqlはオープンソースツールrds_dbsyncに組み込まれており、PostgreSQLデータの移行に使用できます。 pgsql2pgsqlツールを使用して、PostgreSQL、PPAS、Greenplum Database、およびAnalyticDB for PostgreSQL間でデータを移行または同期できます。
pgsql2pgsqlの特徴
pgsql2pgsqlは次の特徴を支えます:
PostgreSQLデータベース、PPASデータベース、Greenplumデータベース、またはAnalyticDB for PostgreSQLデータベースから別のPostgreSQLデータベース、PPASデータベース、Greenplumデータベース、またはAnalyticDB for PostgreSQLデータベースへの完全なデータ移行。
PostgreSQLまたはPPASデータベース (バージョン9.4以降) から別のPostgreSQLまたはPPASデータベースへの完全および増分データ移行。
パラメーターの設定
postgresql.confファイルを変更し、ソースデータベースとターゲットデータベースの接続情報を設定します。
ソースデータベースの接続情報:
重要データベースの接続情報で、ユーザーパラメーターをソースPostgreSQLデータベースの所有者に設定することを推奨します。
[src.pgsql] connect_string = "host=192.168.1.1 dbname=test port=3432 user=test password=pgsql"
オンプレミスの一時データベースの接続情報:
[local.pgsql] connect_string = "host=192.168.1.2 dbname=test port=3432 user=test2 password=pgsql"
接続先データベースの接続情報:
重要ターゲットデータベースのターゲットテーブルに対する書き込み権限が必要です。
[desc.pgsql] connect_string = "host=192.168.1.3 dbname=test port=3432 user=test3 password=pgsql"
増分データを同期する場合は、ソースデータベースにレプリケーションスロットを作成する権限が必要です。
PostgreSQL 9.4以降は、ロジックフローレプリケーション機能をサポートしています。 これらのバージョンのソースデータベースから増分データを移行できます。 ロジックフローレプリケーション機能を有効にするには、次のパラメーターを設定します。
wal_level = logical max_wal_senders = 6 max_replication_slots = 6
pgsql2pgsqlの使用
完全なデータベース移行
次のコマンドを実行して、データベースの完全移行を実行します。
./pgsql2pgsql
デフォルトでは、移行プログラムはすべてのユーザーのテーブルデータを移行元PostgreSQLデータベースから移行先PostgreSQLデータベースに移行します。
ステータスクエリ
オンプレミスの一時データベースに接続して、移行ジョブのステータス情報を照会できます。 ステータス情報はdb_sync_statusテーブルに格納され、フルデータ移行の開始時間と終了時間、増分データ移行の開始時間、増分データ同期のステータスが含まれます。
ダウンロードと手順
rds_dbsyncのバイナリインストールパッケージをダウンロードします。
rds_dbsyncのソースコードをコンパイルする手順を表示します。