DDL replication options#
bdr.ddl_replication パラメーターは、レプリケーション動作を指定します。
bdr.ddl_replication = all はデフォルトであり、
DDLをデフォルトのレプリケーションセットにレプリケートします。デフォルトでは、すべてのノードを意味します。デフォルト以外のレプリケーションセットは、
DDL filter がない限りDDLをレプリケートしません
彼らのために定義されました。
ファンクション bdr.replicate_ddl_command() を使用して、 DDLを特定のレプリケーションセットにレプリケートすることもできます。これは、ノードがダウンしているときにDDLコマンドを実行する場合、またはサイト1のすべてのノードなど、ノードまたは担当セットのサブセットに存在するインデックスまたはパーティションを必要とする場合に役立ちます。
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.ddl_replication パラメーターは、
bdr_superuser、スーパーユーザー、またはpostgres.conf
構成ファイルでのみ設定できます。