PostgreSQLのロジカルレプリケーションメモ

2019-03-04 02:46:53

 DBサーバの負荷分散のため、PostgreSQLのロジカルレプリケーションの設定を試してみました。まず必要な前提情報。


PUBLICATION    コピー元(データ送り側)サーバ上でテーブルなどの設定を記述
SUBSCRIPTION コピー先(データ受け取り側)サーバ上でPUBLICATIONのアドレスやユーザ情報を記述

以下、やっておくべき項目。

1 PUBLICATION側でリモートアクセス可能なユーザを作成
2 PUBLICATION側でpostgresql.confに「wal_level = logical」を設定し、PostgreSQLを再起動
3 PUBLICATION側でコピー元のDBに接続し、「CREATE PUBLICATION PUBLICATION名 FOR ALL TABLES 」
」を設定
4 SUBSCRIPTION側で「pg_dump --schema-only」で作成したDBダンプをリストアし、コピー先のDBの構造を作成
5 SUBSCRIPTION側で作成したDBに接続し、「CREATE SUBSCRIPTION  SUBSCRIPTION名 CONNECTION 'host=サーバのアドレス  dbname=データベース名 user=ユーザ名 password=パスワード' PUBLICATION PUBLICATION名

これでロジカルレプリケーションが始まります。レプリケーションの挙動を確認してみた結果、同期のタイムラグはほとんど感じませんでした。