DDL replication options#
bdr.ddl_replication パラメーターは、レプリケーション動作を指定します。
bdr.ddl_replication = on がデフォルトです。この設定は、
DDLをデフォルトのレプリケーションセット、デフォルトではすべてのノードを意味します。デフォルト以外のレプリケーションセットは、
Replication sets がない限りDDLをレプリケートしません
彼らのために定義されました。
ファンクション bdr.replicate_ddl_command() を使用して、 DDLを特定のレプリケーションセットにレプリケートすることもできます。この機能は、ノードがダウンしているときにDDLコマンドを実行する場合に役立ちます。ノードまたはレップセットのサブセット、たとえば、site1のすべてのノードに存在するインデックスまたはパーティションが必要な場合にも役立ちます。
SELECT bdr.replicate_ddl_command(
CREATE INDEX CONCURRENTLY ON foo (col7);,
ARRAY[site1], -- the replication sets
all); -- ddl_locking to apply
お勧めしませんが、 bdr.ddl_replication 構成パラメーターを使用して、自動DDLレプリケーションをスキップし、各ノードで手動で実行できます。
SET bdr.ddl_replication = off;
設定すると、PGDは実行されたDDLコマンドのグローバルロックとレプリケーションの両方をスキップします。次に、すべてのノードでDDLを手動で実行する必要があります。
警告
グローバルロックを使用せずに各ノードでDDLを手動で実行すると、競合するDDLまたはDMLが同時に実行される場合、PGDグループ全体のレプリケートが停止される場合があります。
bdr_superuserまたはスーパーユーザーのみがbdr.ddl_replication
パラメーターを設定できます。 postgres.conf
構成ファイルで設定することもできます。