Logical replication requires several configuration options to be set. Most
options are relevant only on one side of the replication. However,
max_replication_slots
is used on both the publisher and
the subscriber, but it has a different meaning for each.
wal_level
must be
set to logical
.
max_replication_slots
must be set to at least the number of subscriptions expected to connect,
plus some reserve for table synchronization.
max_wal_senders
should be set to at least the same as
max_replication_slots
, plus the number of physical
replicas that are connected at the same time.
Logical replication walsender is also affected by
wal_sender_timeout
.
max_replication_slots
must be set to at least the number of subscriptions that will be added to
the subscriber, plus some reserve for table synchronization.
max_logical_replication_workers
must be set to at least the number of subscriptions (for leader apply
workers), plus some reserve for the table synchronization workers and
parallel apply workers.
max_worker_processes
may need to be adjusted to accommodate for replication workers, at least
(max_logical_replication_workers
+ 1
). Note, some extensions and parallel queries also
take worker slots from max_worker_processes
.
max_sync_workers_per_subscription
controls the amount of parallelism of the initial data copy during the
subscription initialization or when new tables are added.
max_parallel_apply_workers_per_subscription
controls the amount of parallelism for streaming of in-progress
transactions with subscription parameter
streaming = parallel
.
Logical replication workers are also affected by
wal_receiver_timeout
,
wal_receiver_status_interval
and
wal_retrieve_retry_interval
.