# sync_replication_slots

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

> [!NOTE]
> **Fact — 官方简述译文**：允许物理备库从主库同步逻辑故障转移复制槽。

## 身份 {#identity}

| 字段 | 值 | 含义 |
| --- | --- | --- |
| 类型 | `bool` | 上游 pg_settings 类型 |
| Context | `sighup` | 配置 reload 后生效 |
| 单位 | — | 原始单位 |
| 范围 | — | 最后在档版本的原始上下限 |
| 枚举值 | — | 非枚举类型记为 — |
| 分类 | Replication / Standby Servers | 上游分类 |
| 最后 boot 值 | `off` | off |
{.fields meta="-"}

## 生命周期 {#lifecycle}

| Fact | 值 |
| --- | --- |
| 首次观测 | PG17 |
| 在档版本 | PG17–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | [`93db6cbda037`](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=93db6cbda037f1be9544932bd9a785dabf3ff712) — Add a new slot sync worker to synchronize logical slots. |
| 提交日期 | 2024-02-22 |
| Discussion | [讨论 1](https://postgr.es/m/514f6f2f-6833-4539-39f1-96cd1e011f23@enterprisedb.com) |

## 默认值变迁 {#default-history}

| 版本 | 原始 `boot_val` | 单位 | 人类可读值 |
| --- | --- | --- | --- |
| PG17–19 Beta 3 | `off` | — | off |
{.full-width caption="PG9.0–19 Beta 3 实测 boot 默认值"}

## 机制详解 {#mechanism}

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

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

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

## 调优建议 {#tuning-advice}

> [!TIP]
> **Advice。** 以下建议是工作负载起点，必须用真实测量验证。

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

## Pigsty 取值 {#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` |
{.full-width}

> [!CAUTION]
> **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 模板、硬件夹具和运维保证复核。

## 常见坑 {#common-pitfalls}

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

## 关联参数 {#related-parameters}

[`primary_slot_name`](/zh/parameters/primary-slot-name/) · [`hot_standby_feedback`](/zh/parameters/hot-standby-feedback/) · [`primary_conninfo`](/zh/parameters/primary-conninfo/) · [`synchronized_standby_slots`](/zh/parameters/synchronized-standby-slots/) · [`max_replication_slots`](/zh/parameters/max-replication-slots/) · [`max_slot_wal_keep_size`](/zh/parameters/max-slot-wal-keep-size/)

## 参考资料 {#references}

- [PostgreSQL 19 Beta 3 — sync_replication_slots](https://www.postgresql.org/docs/19/runtime-config-replication.html#GUC-SYNC-REPLICATION-SLOTS)
- [PostgreSQL 19 发行说明](https://www.postgresql.org/docs/19/release-19.html)
- [机器可读 GUC 全量导出](/data/guc.jsonl)
