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で指定されたノードに接続して、グループに参加するために必要な情報を受信します。この例では、これはたまたまサブスクライバー専用グループの作成に使用したノードと同じノードですが、クラスターに完全に参加しているノードである可能性があります。