レプリケーションテーブルは、同期・非同期レプリケーションの両方に対応しています。レプリケーションオブジェクトの設定によって選択することができます。
非同期レプリケーションを利用したいときは、特に設定を変更する必要はありません。デフォルトで非同期レプリケーションが設定されます。
同期レプリケーションを利用したいときは、中央管理ノードのパラメータsynchronous_standby_namesに、レプリケーションオブジェクトの名前を追加してください。レプリケーションオブジェクトの名前は、pgx_replication_object.subnameに対応しています。また、Mirroring Controllerの設定として、サーバ識別子.confのパラメータmc_synchronous_standby_nameを設定する必要があります。
以下に同期レプリケーションの設定例を示します。
データベースdb1に存在するレプリケーションテーブルの同期方法を、同期レプリケーションに設定します。 -中央管理ノードにおいて実行し、pgx_replication_object.subnameを確認 db1=# SELECT * FROM pgx_replication_object; objid | nodeid | pubid | slotname | subname -------+--------+-------+-------------------+------------------- 10000 | 20000 | 30000 | db40000_node20000 | db40000_node20000 10001 | 20001 | 30001 | db40000_node20001 | db40000_node20001 (2 row) -postgresql.confでパラメータを設定 synchronous_standby_names = 'FIRST 3 (coordinator_standby, db40000_node20000, db40000_node20001)' -Mirroring Controllerを停止 $ mc_ctl stop -M /mcdir/inst1 -a --mc-only -サーバ識別子.confでパラメータを設定 mc_synchronous_standby_name = 'coordinator_standby' -パラメータ変更を反映 $ mc_ctl start -M /mcdir/inst1 --mc-only $ pg_ctl reload