31.10. Параметры конфигурации #
Логическая репликация требует установки нескольких параметров конфигурации. Большинство параметров актуальны только на одной стороне репликации. Однако параметр max_replication_slots
используется как на публикующем сервере, так и на подписчике, но имеет разное значение.
31.10.1. Публикующие серверы #
Для wal_level
должно быть установлено значение logical
.
Для параметра max_replication_slots
должно быть задано число не меньше ожидаемого числа подписчиков плюс некоторый резерв для синхронизации таблиц.
В max_wal_senders
должно быть значение как минимум равное max_replication_slots
плюс число возможных физических реплик, работающих одновременно.
В работе передатчика данных логической репликации также учитывается параметр wal_sender_timeout
.
31.10.2. Подписчики #
Для параметра max_replication_slots
должно быть задано значение не меньше числа подписок, на которые будет подписываться данный подписчик, плюс некоторый резерв для синхронизации таблиц.
Для max_logical_replication_workers
должно быть установлено значение, равное как минимум количеству подписок (для ведущих процессов применения), плюс некоторый резерв для рабочих процессов синхронизации таблиц и рабочих процессов параллельного применения.
Кроме того, может потребоваться изменить max_worker_processes
, чтобы это число включало дополнительные рабочие процессы для репликации (как минимум max_logical_replication_workers
+ 1
). Обратите внимание, что некоторые расширения и параллельные запросы также занимают слоты из числа max_worker_processes
.
Параметр max_sync_workers_per_subscription
управляет степенью распараллеливания копирования начальных данных в процессе инициализации подписки или при добавлении новых таблиц.
max_parallel_apply_workers_per_subscription
управляет степенью распараллеливания для потоковой передачи незавершённых транзакций с параметром подписки streaming = parallel
.
На рабочие процессы логической репликации также влияют параметры wal_receiver_timeout
, wal_receiver_status_interval
и wal_retrieve_retry_interval
.