CONFIGURATION PARAMETER预写式日志 / WAL 汇总
wal_summary_keep_time
设置 WAL 摘要文件的保留时间。
Time for which WAL summary files should be kept.
整数 重载生效 引入 17 现存至 20 devel 0 次默认值变更
- 类型
- 整数integer
- 上下文
- 重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
- 默认值
10 d原始值 14400 min- 取值范围
0 – 35791394- 引入版本
- 17
- 状态
- 现存
版本轨迹
相对 PostgreSQL 17 仅简述或分类有更新。
默认值变迁
默认值自 PostgreSQL 17 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
本版译文与 PostgreSQL 17 完全一致,下面就是同一段文字。
配置 WAL 汇总器自动删除旧 WAL 汇总文件之前保留它们的时间。文件时间戳用于判断哪些文件已经足够旧,可以被删除。 通常,你应当把该值设置得远大于一次备份与依赖于它的后续增量备份之间可能经过的时间。 WAL 汇总必须覆盖上一次备份与当前正在进行的新增量备份之间的 WAL 记录范围,否则增量备份将失败。 如果该参数设置为零,WAL 汇总将不会被自动删除,但手工删除那些你确定未来增量备份不再需要的文件是安全的。 该参数只能在postgresql.conf文件中或服务器命令行上设置。 如果指定值时没有单位,则以分钟为单位。默认值为 10 天。 如果summarize_wal = off,则无论该参数的值为何,现有 WAL 汇总都不会被删除,因为 WAL 汇总器不会运行。
机制详解
设置 WAL 摘要文件的保留时间。重新加载配置即可应用新值;已经开始的工作不会被追溯改变。
summarizer 按文件时间戳删除超过该年龄的摘要。保留期必须长于一次增量备份与其依赖的先前备份之间的最长间隔;零表示无限保留,summarize_wal 关闭时也不会清理。
应把 wal_summary_keep_time 与 summarize_wal、wal_level、archive_mode 一起监控和变更。先在对应角色与真实负载上验证,再按其 sighup context 选择会话修改、reload 或 restart;历史默认值并不等于当前有效值。
调优建议
按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。
-
OLTP在线事务处理
只有采用 PostgreSQL 增量备份时才启用/调整 wal_summary_keep_time;监控 summarizer 进度,并让摘要覆盖任何相邻基础/增量备份之间的完整 WAL 范围。
-
OLAP分析与批处理
批量写入会增加摘要工作;把备份间隔、WAL 峰值和备份窗口一起做容量测试,摘要缺口会使增量备份失败。
-
小规格低配实例与开发机
不做增量备份就保持 summarize_wal 关闭;若启用,保留期要由实际备份链决定,并给摘要目录设置容量告警。
常见问题
- 删除连接前后两次增量备份仍需要的摘要。
- 设为零却不监控无界增长。
- 关闭 summarize_wal 后仍期待保留清理继续。
- 混淆 pg_settings 的原始单位与配置文件可读单位。
- 只做吞吐基准,不做崩溃恢复与归档还原。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
PostgreSQL 20 ← 19 沿用 19
事实沿用 19
-
PostgreSQL 18 ← 17 仅描述更新
补充说明
(无)0 disables automatic summary file deletion. -
PostgreSQL 17 ← 16 新增此参数
PostgreSQL 17 起可用
逐版本快照
每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
| WAL 汇总 2 | |||||
summarize_wal |
布尔 | 重载生效 | off |
— | |
| 启动 WAL summarizer 进程以支持增量备份。 | 现存 | ||||
wal_summary_keep_time |
整数 | 重载生效 | 10 d |
— | |
| 设置 WAL 摘要文件的保留时间。 | 现存 | ||||