Creating Subscriber-only groups and nodes#
サブスクライバー専用ノードを作成するプロセスは、ノードを含めるサブスクライバー専用グループを作成することから始まります。 PGDクラスター内の既存の完全に参加したノードでこの手順を実行します。
購読者専用グループの手動作成#
購読者専用グループを作成するには、グループの作成時にnode_group_type
をsubscriber-only
として指定する必要があります。たとえば、ここでは、「host-one」で実行されているノード「node-one」にログインしています。これは、独自のデータグループのメンバーであり、すべてのノードと同様に、ここではtopgroup
と呼ばれるトップレベルグループのメンバーです。このノードに直接ログインして、次のSQLコマンドを使用してsogroup
という名前の新しいサブスクライバー専用グループを作成します。
select bdr.create_node_group(sogroup, topgroup, false, subscriber-only);
またはパラメーター名を使用してより明示的に
select bdr.create_node_group(node_group_name:=sogroup,
parent_group_name:=topgroup,
join_node_group:=false,
node_group_type:=subscriber-only);
これにより、 topgroup グループの子であるsogroup
という名前のサブスクライバー専用グループが作成されます。
join_node_group
のfalseパラメーターは、このコマンドを実行するノードが、新しく作成されたグループに参加しないことを示します。グループへの自動的な参加はデフォルトの動作であり、この場合、抑制する必要があります。
新しいサブスクライバー専用グループへのノードの手動追加#
新しいデータノードを初期化して、サブスクライバー専用グループに追加できるようになりました。データノードを作成し、他のデータノードの場合と同様にbdr拡張機能を構成します。
次に、この新しいノードをsubscriber-only
ノードとして作成する必要があります。これを行うには、新しいノードにログインし、次のSQLコマンドを実行します。
select bdr.create_node(so-node-1, host=so-host-1 dbname=pgddb port=5444, subscriber-only);
次に、その新しいノードにログインし、次のSQLコマンドを使用してsogroup
グループに追加します。
select bdr.join_node_group(host=host-one dbname=pgddb port=5444,sogroup);
またはパラメーター名を使用してより明示的に
select bdr.join_node_group(dsn:=host=host-one dbname=pgddb port=5444,
node_group_name:=sogroup);
これは、新しいノードにsogroup
グループに参加するように指示します。クラスタートポロジの知識がないため、DSNで指定されたノードに接続して、グループに参加するために必要な情報を受信します。この例では、これはたまたまサブスクライバー専用グループの作成に使用したノードと同じノードですが、クラスターに完全に参加しているノードである可能性があります。