跳转到主要内容

sync_replication_slots

sync_replication_slots:允许物理备库从主库同步逻辑故障转移复制槽。它是 PG17–18 的 sighup 参数;最新实测启动默认值为 off。
说明

Fact — 官方简述译文:允许物理备库从主库同步逻辑故障转移复制槽。

身份

类型 , bool
上游 pg_settings 类型
Context , sighup
配置 reload 后生效
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Replication / Standby Servers
上游分类
最后 boot 值 , off
off

生命周期

Fact
首次观测 PG17
在档版本 PG17–19 Beta 3
移除版本
引入提交 93db6cbda037 — Add a new slot sync worker to synchronize logical slots.
提交日期 2024-02-22
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG17–19 Beta 3 off off

机制详解

在物理备库启用 slotsync worker,从主库复制逻辑 failover slot 状态。重新加载配置即可应用新值。

同步要求主备之间存在物理复制槽(备库设置 primary_slot_name)、备库开启 hot_standby_feedback,并在 primary_conninfo 中提供有效 dbname;源逻辑槽还必须启用 failover。

槽状态是异步复制的。主库应把该备库的物理槽列入 synchronized_standby_slots,避免订阅者跑在故障转移备库之前;提升前必须验证每个必需槽已同步且可用于切换。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 只在完整的逻辑故障转移设计中启用。自动检查所有前提,并在必需 failover slot 尚未同步或存在冲突时阻止计划提升。
OLAP 大事务与延迟备库会扩大同步滞后;应联合监控订阅者确认位置、备库重放、物理槽保留与 catalog horizon。
小规格 不要仅因开关存在就启用。小型部署同样需要永久物理槽、hot_standby_feedback、dbname、保留上限和经过验证的切换 runbook。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP true 不同于 boot 值 on
OLAP true 不同于 boot 值 on
CRIT true 不同于 boot 值 on
TINY true 不同于 boot 值 on
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG17–19 Beta 3 = True (dcs);OLAP: PG17–19 Beta 3 = True (dcs);CRIT: PG17–19 Beta 3 = True (dcs);TINY: PG17–19 Beta 3 = True (dcs)。 建议(待人工复核)——编辑推断(待维护者人工复核):该选择看起来意在在物理备库准备逻辑故障转移槽,以支持受控切换;发布前应结合当前 Pigsty 模板、硬件夹具和运维保证复核。

常见坑

  • 未设置 primary_slot_name、缺少强制物理槽时就启用。
  • hot_standby_feedback 仍为 off,无法为同步逻辑槽安全保留 catalog 行。
  • primary_conninfo 中遗漏 dbname。
  • 源逻辑槽未启用 failover,却期待它被同步。
  • 未确认每个必需槽已同步且没有落后于订阅者就提升。

primary_slot_name · hot_standby_feedback · primary_conninfo · synchronized_standby_slots · max_replication_slots · max_slot_wal_keep_size

参考资料