Configuring selective replication#
Replication sets を使用して、どのテーブルがどのノードにレプリケートするかを制御し、リージョン内に機密または場所固有のデータを保持します。
各ノードグループには、同じ名前の事前構成されたレプリケーションセットがあります。デフォルトでは、すべてのテーブルはトップレベルグループのレプリケーションセットに属し、クラスター内のすべてのノードにレプリケートされます。
グループ階層とそれに関連するレプリケーションセットを表示するには
SELECT node_group_name, default_repset, parent_group_name
FROM bdr.node_group_summary;
テーブルが現在どのレプリケーションセットに属しているかを確認するには
SELECT relname, set_name FROM bdr.tables ORDER BY relname, set_name;
テーブルを特定の場所に制限するには、それらの場所のレプリケーションセットに追加し、トップレベルグループのレプリケーションセットから削除します。
SELECT bdr.replication_set_add_table(<table_name>, <location_a>);
SELECT bdr.replication_set_add_table(<table_name>, <location_b>);
SELECT bdr.replication_set_remove_table(<table_name>, <top_level_group>);
この変更後、 <location_a>
のノードのテーブルへの書き込みは<location_a>
の他のノードにのみレプリケートされ、 <location_b>
ノードの書き込みは<location_b> 内でのみレプリケートされます。
トップレベルレプリケーションセットに残ったテーブルは、どこでもレプリケートし続けます。製品カタログや構成など、すべての場所で必要なグローバル参照データのトップレベルのレプリケーションセットを使用します。