Replication set management

bdr.create_replication_set

この関数は、レプリケーションセットを作成します。

このコマンドのレプリケーションは、 DDLDDL構成の影響を受けます。

概要

bdr.create_replication_set(set_name name,
                           replicate_insert boolean DEFAULT true,
                           replicate_update boolean DEFAULT true,
                           replicate_delete boolean DEFAULT true,
                           replicate_truncate boolean DEFAULT true,
                           autoadd_tables boolean DEFAULT false,
                           autoadd_existing boolean DEFAULT true)

パラメータ

  • set_name —新しい複製セットの名前。 PGDグループ全体で一意である必要があります。

  • replicate_insert —このレプリケーションセット内のテーブルへの挿入をレプリケートするかどうかを示します。

  • replicate_update —このレプリケーションセット内のテーブルの更新をレプリケートするかどうかを示します。

  • replicate_delete —このレプリケーションセット内のテーブルからの削除をレプリケートするかどうかを示します。

  • replicate_truncate —このレプリケーションセット内のテーブルの切り捨てをレプリケートするかどうかを示します。

  • autoadd_tables —新しく作成された(将来)テーブルをこのレプリケーションセットにレプリケートするかどうかを示します

  • autoadd_existing —このレプリケーションセットに既存のすべてのユーザーテーブルを追加するかどうかを示します。このパラメーターは、 autoadd_tables がtrue に設定されている場合にのみ効果があります。

注意事項

デフォルトでは、新しいレプリケーションセットはDDLまたはPGD管理ファンクションコールをレプリケートしません。レプリケーションセットのDDLレプリケーションを設定する方法については、

ddl filters を参照してください。すべてのDDLおよび管理ファンクションコールをレプリケートするデフォルトのグループレプリケーションセット用に、既存のDDLフィルターが設定されています。グループの作成時に作成されますが、PGDグループのデフォルトのレプリケーションセットでDDLまたはPGD管理関数呼び出しをレプリケートしたくない場合は、削除できます。

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters の影響を受けることを意味します

構成。

この関数は、 DDL グローバルロックを取ります。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

bdr.alter_replication_set

この機能は、既存のレプリケーションセットのオプションを変更します。

このコマンドのレプリケーションは、 DDLフィルタリング設定を含むDDLレプリケーション構成の影響を受けます。

概要

bdr.alter_replication_set(set_name name,
                          replicate_insert boolean DEFAULT NULL,
                          replicate_update boolean DEFAULT NULL,
                          replicate_delete boolean DEFAULT NULL,
                          replicate_truncate boolean DEFAULT NULL,
                          autoadd_tables boolean DEFAULT NULL)

パラメータ

  • set_name —既存の複製セットの名前。

  • replicate_insert —このレプリケーションセット内のテーブルへの挿入をレプリケートするかどうかを示します。

  • replicate_update —このレプリケーションセット内のテーブルの更新をレプリケートするかどうかを示します。

  • replicate_delete —このレプリケーションセット内のテーブルからの削除をレプリケートするかどうかを示します。

  • replicate_truncate —このレプリケーションセット内のテーブルの切り捨てをレプリケートするかどうかを示します。

  • autoadd_tables —新しく作成された(将来)テーブルをこのレプリケーションセットに追加するかどうかを示します。

NULL(デフォルト)に設定されているオプションはすべて、以前と同じままです。

注意事項

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters の影響を受けることを意味します

構成。

この関数は、 DDL グローバルロックを取ります。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

bdr.drop_replication_set

この関数は、既存のレプリケーションセットを削除します。

このコマンドのレプリケーションは、 DDLフィルタリング設定を含むDDLレプリケーション構成の影響を受けます。

概要

bdr.drop_replication_set(set_name name)

パラメータ

  • set_name —既存の複製セットの名前。

注意事項

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters の影響を受けることを意味します

構成。

この関数は、 DDL グローバルロックを取ります。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

警告

少なくとも別のノードで使用されているレプリケーションセットを削除しないでください。そのノードでレプリケーションが停止するためです。その場合は、影響を受けるノードをそのレプリケーションセットからサブスクライブ解除します。同じ理由から、参加するノードがそのレプリケーションセットのメンバーである場合、参加操作が進行中のレプリケーションセットを削除しないでください。レプリケーションセットのメンバーシップは、結合の開始時にのみチェックされます。これは、レプリケーションセットの使用に関する情報は各ノードにローカルであるため、グループに参加する前にノードで構成できるために発生します。

alter_node_replication_sets を使用して、ノードのレプリケーションセットサブスクリプションを管理できます。

bdr.alter_node_replication_sets

この関数は、ノードがパブリッシュおよびサブスクライブするレプリケーションセットを変更します。

概要

bdr.alter_node_replication_sets(node_name name,
                                set_names text[])

パラメータ

  • node_name —変更するノード。現在、ローカルノードである必要があります。

  • set_names —指定されたノードにレプリケートするレプリケーションセットの配列。配列が空の場合、グループのデフォルトのレプリケーションセットが使用されます。

注意事項

この関数はローカルノードでのみ実行され、いかなる方法でも複製されません。

この関数はノードが参加する前に実行されるように設計されているため、リストされているレプリケーションセットの存在はチェックされません。エラーを回避するために、レプリケーションセット名を正しく指定するように注意してください。

これにより、PGDグループの一部であるノードだけでなく、まだグループに参加していないノードでも関数を呼び出すことができます。このアプローチでは、結合中に同期されるデータが制限されます。ただし、スキーマは、レプリケーションセットの設定に関係なく、常に完全に同期されます。レプリケーションセットで指定されたテーブルだけでなく、すべてのテーブルがコピーされます。 bdr.tables カタログテーブルを参照して、不要なテーブルを削除できます。これらは、PGDの以降のバージョンで自動的に削除される可能性があります。これは、

そうしないと、構成によりDDLのレプリケーションが防止されます。

この呼び出しの後にノードがサブスクライブするレプリケーションセットは、他のノードによって公開され、これらのノードからこの関数が実行されるノードに変更を実際に複製します。