From 75577a3363bcd0c97eac8b82d5b0233ab363dd18 Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Thu, 8 Dec 2022 15:55:05 +1100 Subject: [PATCH v7] Logical replication GUCs - links and tidy --- doc/src/sgml/config.sgml | 39 ++++++++++++---- doc/src/sgml/logical-replication.sgml | 86 ++++++++++++++++++++++++++--------- 2 files changed, 95 insertions(+), 30 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index ff6fcd9..46b18cf 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 @@ -4237,6 +4254,9 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows pg_replication_origin_status, not pg_replication_origin) 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. @@ -4914,17 +4934,20 @@ ANY num_sync ( for more details. + + max_replication_slots (integer) + + + See . + + + + max_logical_replication_workers (integer) diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml index f875638..1f22616 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. - -- 1.8.3.1