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
.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.