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 を使用してエフェクトをロールバックできます。変更は現在のトランザクションに表示されます。