DDL replication options

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 構成ファイルで設定することもできます。