DDL replication options
=======================

`bdr.ddl_replication <https://www.enterprisedb.com/docs/pgd/latest/reference/tables-views-functions/pgd-settings#bdrddl_replication>`_ パラメーターは、レプリケーション動作を指定します。

``bdr.ddl_replication = on`` がデフォルトです。この設定は、
DDLをデフォルトのレプリケーションセット、デフォルトではすべてのノードを意味します。デフォルト以外のレプリケーションセットは、
:ref:`Replication sets <Replication sets>` がない限りDDLをレプリケートしません

彼らのために定義されました。

ファンクション 
`bdr.replicate_ddl_command() <https://www.enterprisedb.com/docs/pgd/latest/reference/tables-views-functions/functions#bdrreplicate_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 <https://www.enterprisedb.com/docs/pgd/latest/reference/tables-views-functions/pgd-settings#bdrddl_replication>`_ 構成パラメーターを使用して、自動DDLレプリケーションをスキップし、各ノードで手動で実行できます。

::

   SET bdr.ddl_replication = off;

設定すると、PGDは実行されたDDLコマンドのグローバルロックとレプリケーションの両方をスキップします。次に、すべてのノードでDDLを手動で実行する必要があります。

..  Warning::
   グローバルロックを使用せずに各ノードでDDLを手動で実行すると、競合するDDLまたはDMLが同時に実行される場合、PGDグループ全体のレプリケートが停止される場合があります。

bdr_superuserまたはスーパーユーザーのみが\ ``bdr.ddl_replication``
パラメーターを設定できます。 ``postgres.conf``
構成ファイルで設定することもできます。
