diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index ff6fcd902a..8e4145979d 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -4156,7 +4156,13 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
These settings control the behavior of the built-in
streaming replication feature (see
- ). Servers will be either a
+ ), and the built-in
+ logical replication feature (see
+ ).
+
+
+
+ For streaming replication, servers will be either a
primary or a standby server. Primaries can send data, while standbys
are always receivers of replicated data. When cascading replication
(see ) is used, standby servers
@@ -4166,6 +4172,17 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
across the cluster without problems if that is required.
+
+ For logical replication, publishers
+ (servers that do CREATE PUBLICATION)
+ replicate data to subscribers
+ (servers that do CREATE SUBSCRIPTION).
+ Servers can also be publishers and subscribers at the same time. Note,
+ the following sections refer to publishers as "senders". For more details
+ about logical replication configuration settings refer to
+ .
+
+
Sending Servers
@@ -4213,6 +4230,7 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
max_replication_slots (integer)
max_replication_slots configuration parameter
+ in a sending server
@@ -4229,14 +4247,8 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
- On the subscriber side, specifies how many replication origins (see
- ) can be tracked simultaneously,
- effectively limiting how many logical replication subscriptions can
- be created on the server. Setting it to a lower value than the current
- number of tracked replication origins (reflected in
- pg_replication_origin_status,
- not pg_replication_origin)
- will prevent the server from starting.
+ Note that this parameter also applies on the subscriber side, but with
+ a different meaning.
@@ -4914,17 +4926,39 @@ ANY num_sync ( for more details.
+
+ max_replication_slots (integer)
+
+ max_replication_slots configuration parameter
+ in a subscriber
+
+
+
+
+ Specifies how many replication origins (see
+ ) can be tracked simultaneously,
+ effectively limiting how many logical replication subscriptions can
+ be created on the server. Setting it to a lower value than the current
+ number of tracked replication origins (reflected in
+ pg_replication_origin_status)
+ will prevent the server from starting.
+ 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.
+
+
+
+ Note that this parameter also applies on a sending server, but with
+ a different meaning.
+
+
+
+
max_logical_replication_workers (integer)
diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index f8756389a3..7fdf08b59d 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -1765,31 +1765,73 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
Configuration Settings
- Logical replication requires several configuration options to be set.
+ 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.
-
- On the publisher side, wal_level must be set to
- logical, and max_replication_slots
- must be set to at least the number of subscriptions expected to connect,
- plus some reserve for table synchronization. And
- 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.
-
+
+ Publishers
+
+
+ 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.
+
+
+
+
+
+ Subscribers
+
+
+ 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 apply workers), plus
+ some reserve for the table 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 the amount of parallelism of the initial data copy during the
+ subscription initialization or when new tables are added.
+
+
+
+ Logical replication workers are also affected by
+ wal_receiver_timeout,
+ wal_receiver_status_interval and
+ wal_receiver_retry_interval.
+
+
+
-
- max_replication_slots must also be set on the subscriber.
- It should 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, again plus some reserve for the table
- synchronization. Additionally the max_worker_processes
- may need to be adjusted to accommodate for replication workers, at least
- (max_logical_replication_workers
- + 1). Note that some extensions and parallel queries
- also take worker slots from max_worker_processes.
-