DDL replication options v5
The bdr.ddl_replication
parameter specifies replication behavior.
bdr.ddl_replication = on
is the default. This setting replicates DDL to the
default replication set, which by default means all nodes. Non-default
replication sets don't replicate DDL unless they have a
DDL filter
defined for them.
You can also replicate DDL to specific replication sets using the
function bdr.replicate_ddl_command()
. This function can be helpful if you
want to run DDL commands when a node is down. It's also helpful if you want to have
indexes or partitions that exist on a subset of nodes or rep sets,
for example, all nodes at site1.
While we don't recommend it, you can skip automatic DDL replication and
execute it manually on each node using the bdr.ddl_replication
configuration
parameter.
When set, it makes PGD skip both the global locking and the replication of executed DDL commands. You must then run the DDL manually on all nodes.
Warning
Executing DDL manually on each node without global locking can cause the whole PGD group to stop replicating if conflicting DDL or DML executes concurrently.
Only the bdr_superuser or superuser can set the bdr.ddl_replication
parameter. It can also be set in the postgres.conf
configuration file.