Replication set membership

bdr.replication_set_add_table

この関数は、テーブルをレプリケーションセットに追加します。

これにより、テーブルがレプリケーションセットに追加され、この瞬間(またはむしろトランザクションコミット)から変更の複製が開始されます。テーブルがノード上に持つ可能性のある既存のデータは同期されません。

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

概要

bdr.replication_set_add_table(relation regclass,
                              set_name name DEFAULT NULL,
                              columns text[] DEFAULT NULL,
                              row_filter text DEFAULT NULL)

パラメータ

  • relation —テーブルの名前またはOid。

  • set_name —複製セットの名前。 NULL(デフォルト)の場合、PGDグループのデフォルトの複製セットが使用されます。

  • columns —将来の使用のために予約されています(現在は何も行わず、NULLである必要があります)。

  • row_filter —レプリケートされた行のフィルタリングに使用されるSQL式。この式が定義されていない(つまり、デフォルトのNULLに設定されている)場合、すべての行が送信されます。

row_filter は、 NULLを含むブール結果を生成する式を指定します。 TrueまたはUnknownと評価される式は、行を複製します。 False値は行を複製しません。式にサブクエリを含めたり、レプリケートされる現在の行の列以外の変数を参照したりすることはできません。システム列を参照することはできません。

row_filter は、ターゲットノードではなく、オリジンノードで実行されます。これにより、この特定のテーブルのレプリケーションに追加のCPUオーバーヘッドがかかりますが、フィルタリングされた行のデータの送信は完全に回避されます。したがって、ネットワーク帯域幅が削減され、ターゲットノードのオーバーヘッドが適用されます。

row_filter は、特定のテーブルのTRUNCATE コマンドを削除しません。レプリケーションセットレベルでTRUNCATE コマンドをフィルタリングできます。

テーブルの一部の列のみをレプリケートできます。

差分のあるノード間のレプリケーション を参照してください。

注意事項

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

構成。

row_filter がNULLでない場合、関数は、レプリケーションセットに追加されるリレーションでDML グローバルロックを取得します。それ以外の場合は、 DDL グローバルロックのみを使用します。

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

bdr.replication_set_remove_table

この関数は、レプリケーションセットからテーブルを削除します。

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

概要

bdr.replication_set_remove_table(relation regclass,
                                 set_name name DEFAULT NULL)

パラメータ

  • relation —テーブルの名前またはOid。

  • set_name —複製セットの名前。 NULL(デフォルト)の場合、PGDグループのデフォルトの複製セットが使用されます。

注意事項

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

構成。

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

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