Replication set management#
bdr.create_replication_set#
この機能は、レプリケーションセットを作成します。
このコマンドのレプリケーションは、 DDLフィルタリング設定を含むDDLレプリケーション構成の影響を受けます。
概要#
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の後のバージョンでは自動的に削除される可能性があります。これは現在trueです。 DDL filters
それ以外の場合、構成はDDLのレプリケーションを防止します。
この呼び出しの後にノードがサブスクライブするレプリケーションセットは、他のノードからこのファンクションが実行されるノードに変更を実際にレプリケートするために他のノードによって公開されます。