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.