逻辑复制要求设置多个配置选项。大多数选项只与复制的一方相关。然而,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
必须至少设置为订阅数(对于 leader 应用工作进程),外加一些表同步工作进程和并行应用工作进程的预留。
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
的影响。