选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 复制

CONFIGURATION PARAMETER复制 / 备库

primary_slot_name

设置连接发送端服务器时使用的复制槽名称。

Sets the name of the replication slot to use on the sending server.

字符串 重载生效 引入 12 现存至 20 devel 0 次默认值变更

类型
字符串string
上下文
重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
默认值
空字符串原始值 ''
引入版本
12
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 2dedf4d9a8

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

空字符串 12 – 20

默认值自 PostgreSQL 12 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.6 复制 本站手册 官方原文

有选择地指定通过流复制连接到发送服务器时使用一个现有的复制槽来控制上游节点上的资源移除(见Section 26.2.6)。 这个参数只能在 postgresql.conf文件或服务器命令行上设置。 如果在 WAL 接收进程运行时更改此参数,则该进程将发出关机信号,并预期使用新设置重新启动(除非primary_conninfo为空字符串)。 如果没有设置primary_conninfo或服务器没有处于备库模式,则此设置无效。

机制详解

设置连接发送端服务器时使用的复制槽名称。重新加载配置即可应用新值;已经开始的工作不会被追溯改变。

Receiver 指定上游已有的物理槽,使发送端保留该备库所需 WAL。它提高断连后的连续性,却把磁盘保留风险转移到主库,故障切换时还必须协调槽生命周期。

应把 primary_slot_name 与 wal_keep_segments、wal_keep_size、wal_segment_size 一起监控和变更。先在对应角色与真实负载上验证,再按其 sighup context 选择会话修改、reload 或 restart;历史默认值并不等于当前有效值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    按主备拓扑、故障切换角色、复制槽/订阅数量与断连余量规划 primary_slot_name;上线前验证主库写延迟、备库重放和磁盘保留的最坏情况。

  • OLAP分析与批处理

    读备库与逻辑订阅常有长查询或大事务,应给重放/应用留明确上界,并监控延迟、worker 饱和、槽 restart_lsn 与冲突取消。

  • 小规格低配实例与开发机

    只配置真实需要的复制能力。少量节点也应设置有界超时与槽生命周期,不要用无限保留换取表面稳定。

常见问题

  • 创建槽却不监控 restart_lsn 与主库磁盘。
  • 故障切换时未证明消费者位置就删除或复用槽。
  • 误以为复制槽本身会归档或备份 WAL。
  • 在错误的主库、备库、发送端或订阅端角色上修改。
  • 只看字节/时间配置,不监控真实复制延迟、槽位置与 worker 状态。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 13 ← 12 属性变更

    上下文 重启生效 重载生效

  3. PostgreSQL 12 ← 11 新增此参数

    PostgreSQL 12 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
12 空字符串 重启生效 字符串
13 空字符串 重载生效 字符串
14 空字符串 重载生效 字符串
15 空字符串 重载生效 字符串
16 空字符串 重载生效 字符串
17 空字符串 重载生效 字符串
18 空字符串 重载生效 字符串
19 空字符串 重载生效 字符串
20 沿用 空字符串 重载生效 字符串

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Replication 复制 13 个
备库 13
hot_standby 布尔 重启生效 on 101 次
允许在恢复期间连接并执行查询。 现存
hot_standby_feedback 布尔 重载生效 off
允许热备库向主库反馈信息,以避免查询冲突。 现存
max_standby_archive_delay 整数 重载生效 30 s 9.11 次
设置热备处理归档 WAL 时,取消冲突查询前允许的最大延迟。 现存
max_standby_streaming_delay 整数 重载生效 30 s 9.11 次
设置热备处理流式 WAL 时,取消冲突查询前允许的最大延迟。 现存
primary_conninfo 字符串 重载生效 空字符串 131 次
设置连接发送端服务器时使用的连接字符串。 现存
primary_slot_name 字符串 重载生效 空字符串 131 次
设置连接发送端服务器时使用的复制槽名称。 现存
promote_trigger_file 字符串 重载生效 空字符串
指定一个文件,其出现会使备库结束恢复。 于 16 移除
recovery_min_apply_delay 整数 重载生效 0 ms
设置恢复期间应用变更的最小延迟。 现存
sync_replication_slots 布尔 重载生效 off
允许物理备库从主库同步逻辑故障转移复制槽。 现存
wal_receiver_create_temp_slot 布尔 重载生效 off
未配置永久槽时,设置 WAL receiver 是否创建临时复制槽。 现存
wal_receiver_status_interval 整数 重载生效 10 s
设置 WAL receiver 向发送端报告状态的最大间隔。 现存
wal_receiver_timeout 整数 重载生效 1 min 191 次
设置等待发送端数据的最长时间。 现存
wal_retrieve_retry_interval 整数 重载生效 5 s
设置 WAL 获取失败后的重试等待时间。 现存