29.13. Configuration Settings #

29.13.1. Publishers
29.13.2. Subscribers

Logical replication requires several configuration options to be set. These options are relevant only on one side of the replication.

29.13.1. Publishers #

wal_level must be set to replica or logical.

max_replication_slots must be set to at least the number of subscriptions expected to connect, plus some reserve for table synchronization.

Logical replication slots are also affected by idle_replication_slot_timeout.

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.

29.13.2. Subscribers #

max_active_replication_origins must be set to at least the number of subscriptions that will be added to the subscriber, plus some reserve for table synchronization.

max_replication_slots must be set to at least 1 when retain_dead_tuples is enabled for any subscription.

max_logical_replication_workers must be set to at least the number of subscriptions (for leader apply workers), plus some reserve for the parallel apply workers, and table/sequence synchronization 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 how many tables can be synchronized in parallel during subscription initialization or when new tables are added. One additional worker is also needed for sequence synchronization.

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.