CONFIGURATION PARAMETER开发者选项
trace_recovery_messages
控制恢复相关调试消息的日志级别。
Enables logging of recovery-related debugging information.
枚举 重载生效 引入 9.0(基线) 于 17 移除 0 次默认值变更
- 类型
- 枚举enum
- 上下文
- 重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
- 默认值
log- 枚举值
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error- 分类
- 开发者选项
- 引入版本
- 9.0(基线)
- 状态
- 于 17 移除
版本轨迹
相对 PostgreSQL 15 无变化。
默认值变迁
默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
本站未收录 PostgreSQL 16 手册,以下为 PostgreSQL 13 的译文。
启用原本不会记录的恢复相关调试输出。此参数允许用户覆盖log_min_messages的常规设置,但仅针对特定消息。 它旨在用于调试热备。有效值为DEBUG5、DEBUG4、 DEBUG3、DEBUG2、DEBUG1和LOG。 默认值LOG完全不影响是否记录消息的决定。其他值会让该优先级或更高优先级的恢复相关调试消息 按LOG优先级记录;对于log_min_messages的常见设置,这会无条件地将它们发送到服务器日志。 此参数只能在postgresql.conf文件中或在服务器命令行上设置。
机制详解
PG16 及以前,trace_recovery_messages 会把达到所选严重级别的恢复 DEBUG 消息重新映射为 LOG,使通常隐藏的恢复内部信息在测试时可见。
它只改变消息可见性,不改变恢复决策、WAL 重放顺序或持久性;详细恢复日志可能极大并影响时序。
PostgreSQL 17 移除该参数。升级配置必须删除;当前恢复诊断应使用受支持日志、进度与 WAL 检查工具。其 SIGHUP 上下文允许通过重载配置生效,无需重启服务器。
调优建议
按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。
-
OLTP在线事务处理
当前 PostgreSQL 不应配置 trace_recovery_messages。升级时删除;即使存在后继参数,也只能用于同类受控开发测试,不能成为生产默认。
-
OLAP分析与批处理
分析负载不能成为保留已移除 trace_recovery_messages 的理由;当前版本应使用受支持 EXPLAIN、日志或文档化替代项诊断。
-
小规格低配实例与开发机
现代配置中删除 trace_recovery_messages。未知参数导致的启动失败与诊断开销远大于历史用途。
常见问题
- 限时诊断或恢复任务结束后仍让 trace_recovery_messages 保持启用。
- 在生产数据的唯一副本上进行实验。
- 低估日志、core、临时文件、WAL、CPU 或连接名额放大。
- 把服务器能启动或查询能完成误当作数据与行为正确的证明。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
PostgreSQL 17 ← 16 移除此参数
该版起不再存在
逐版本快照
每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。
| 版本 | 默认值 | 单位 | 上下文 | 类型 | 最小值 | 最大值 | 枚举值 |
|---|---|---|---|---|---|---|---|
| 9.0 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.1 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.2 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.3 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.4 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.5 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 9.6 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 10 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 11 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 12 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 13 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 14 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 15 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
| 16 | log |
— |
重载生效 |
枚举 |
— |
— |
debug5, debug4, debug3, debug2, debug1, log, notice, warning, error |
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
allow_in_place_tablespaces |
布尔 | 会话(超级用户) | off |
— | |
| 允许在 pg_tblspc 内直接创建 tablespace,用于测试。 | 现存 | ||||
allow_system_table_mods |
布尔 | 会话(超级用户) | off |
131 次 | |
| 允许修改系统表的结构。 | 现存 | ||||
backtrace_functions |
字符串 | 会话(超级用户) | 空字符串 |
— | |
| 当指定函数中发生错误时记录调用栈。 | 现存 | ||||
debug_discard_caches |
整数 | 会话(超级用户) | 0 |
— | |
| 为调试而激进地使系统目录缓存失效。 | 现存 | ||||
debug_io_direct |
字符串 | 重启生效 | 空字符串 |
— | |
| 为指定文件访问使用直接 I/O。 | 现存 | ||||
debug_logical_replication_streaming |
枚举 | 会话 | buffered |
— | |
| 强制大型事务立即流式发送或序列化变更。 | 现存 | ||||
debug_parallel_query |
枚举 | 会话 | off |
— | |
| 为测试而强制规划器使用并行查询节点。 | 现存 | ||||
force_parallel_mode |
枚举 | 会话 | off |
— | |
| 强制使用并行查询设施。 | 于 16 移除 | ||||
ignore_checksum_failure |
布尔 | 会话(超级用户) | off |
— | |
| 校验和失败后仍继续处理。 | 现存 | ||||
ignore_invalid_pages |
布尔 | 重启生效 | off |
— | |
| 恢复遇到无效页面引用后仍继续。 | 现存 | ||||
ignore_system_indexes |
布尔 | 连接时 | off |
— | |
| 读取系统表时忽略系统索引。 | 现存 | ||||
jit_debugging_support |
布尔 | 连接时(超级用户) | off |
— | |
| 向调试器注册 JIT 生成的函数。 | 现存 | ||||
jit_dump_bitcode |
布尔 | 会话(超级用户) | off |
— | |
| 将 LLVM 位码写盘以便调试 JIT。 | 现存 | ||||
jit_expressions |
布尔 | 会话 | on |
— | |
| 允许 JIT 编译表达式。 | 现存 | ||||
jit_profiling_support |
布尔 | 连接时(超级用户) | off |
— | |
| 向 perf 分析器注册 JIT 生成的函数。 | 现存 | ||||
jit_tuple_deforming |
布尔 | 会话 | on |
— | |
| 允许 JIT 编译元组拆解。 | 现存 | ||||
post_auth_delay |
整数 | 连接时 | 0 s |
— | |
| 设置连接认证完成后的调试等待时间。 | 现存 | ||||
pre_auth_delay |
整数 | 重载生效 | 0 s |
— | |
| 设置连接认证开始前的调试等待时间。 | 现存 | ||||
remove_temp_files_after_crash |
布尔 | 重载生效 | on |
— | |
| 控制后端崩溃后是否删除临时文件。 | 现存 | ||||
send_abort_for_crash |
布尔 | 重载生效 | off |
— | |
| 后端崩溃后向其他子进程发送 SIGABRT 而非 SIGQUIT。 | 现存 | ||||
send_abort_for_kill |
布尔 | 重载生效 | off |
— | |
| 终止卡住的子进程时发送 SIGABRT 而非 SIGKILL。 | 现存 | ||||
trace_connection_negotiation |
布尔 | 重启生效 | off |
— | |
| 记录认证前连接握手的详细信息。 | 现存 | ||||
trace_notify |
布尔 | 会话 | off |
— | |
| 为 LISTEN 和 NOTIFY 生成调试输出。 | 现存 | ||||
trace_recovery_messages |
枚举 | 重载生效 | log |
— | |
| 控制恢复相关调试消息的日志级别。 | 于 17 移除 | ||||
trace_sort |
布尔 | 会话 | off |
— | |
| 输出排序操作的资源使用信息。 | 现存 | ||||
wal_consistency_checking |
字符串 | 会话(超级用户) | 空字符串 |
— | |
| 设置要执行 WAL 一致性检查的资源管理器。 | 现存 | ||||
zero_damaged_pages |
布尔 | 会话(超级用户) | off |
— | |
| 遇到损坏页面头时把内存中的页面清零后继续。 | 现存 | ||||