逻辑复制需要设置几个配置选项。大多数选项仅与复制的一侧相关。
然而,max_replication_slots
在发布者和订阅者两端都使用,
但在每一端的含义不同。
wal_level
必须设置为
logical
。
max_replication_slots
必须设置为至少等于预期连接的订阅数量,加上一些用于表同步的预留。
max_wal_senders
应该设置为至少与
max_replication_slots
相同,加上同时连接的物理
副本的数量。
逻辑复制的walsender也会受到
wal_sender_timeout
的影响。
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
的影响。