sync_replication_slots
Fact — 官方简述译文:允许物理备库从主库同步逻辑故障转移复制槽。
身份
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG17 |
| 在档版本 | PG17–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 93db6cbda037 — Add a new slot sync worker to synchronize logical slots. |
| 提交日期 | 2024-02-22 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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