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 filters

それ以外の場合は、構成がDDLのレプリケーションを防止します。

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