Joining nodes to a Subscriber-only group#
PGDクラスターにサブスクライバー専用グループがない場合、 Creating Subscriber-only groups and nodes のプロセスに従ってグループを作成する必要があります。加入者専用グループを作成したら、加入者専用ノードをそれに参加できます。
既存の加入者専用グループへのノードの参加#
Creating Subscriber-only groups and nodes へのノードの参加とは異なり、既存の加入者専用グループへのノードの参加はより簡単なプロセスです。
最初に、新しいノードを加入者専用ノードとして作成します。新しいノードで次のSQLコマンドを実行します。
select bdr.create_node(so-node-2, host=so-host-2 dbname=pgddb port=5444, subscriber-only);
またはパラメーター名を使用してより明示的に
select bdr.create_node(node_name:=so-node-2,
dsn:=host=so-host-2 dbname=pgddb port=5444,
node_type:=subscriber-only);
このコマンドは、ホストso-host-2 にso-node-2
という名前の新しいノードを作成し、サブスクライバ専用ノードとして構成します。
ノードは、グループに参加するまでクラスターに参加できません。
Creating Subscriber-only groups and nodes では、 sogroup という名前のグループを作成し、ホスト
shost-1 にso-node-1
というサブスクライバ専用ノードを追加しました。既存のデータグループのノードを使用して、その結合を促進します。ただし、この新しい加入者専用ノードを使用して、別の加入者専用ノードを追加することはできません。クラスターに完全に参加しているアクティブなデータノードを使用する必要があります。
Creating Subscriber-only groups and nodes の例では、このタスクのクラスターのデータグループでhost-one
を使用します。 shost-2 で次の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で指定されたノードに接続して、グループに参加するために必要な情報を受信します。そのノードは、新しいノードをグループに参加する要求のソースとして機能するため、クラスターに完全に参加する必要があります。
新しいノードがグループに参加すると、最初に同期することから開始され、クラスター内の他のノードからレプリケーション変更の受信を開始します。
注釈
グループが Optimizing subscriber-only groups を使用している場合を除き、参加しているサブスクライバ専用グループのサブスクライバ専用グループリーダーから変更をレプリケートします。