↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

百科 / 配置参数 / 开发者选项

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 16 手册 官方文档

版本轨迹

相对 PostgreSQL 15 无变化。

默认值变迁

log 9.0 – 16

已记录的默认值在 PostgreSQL 9.0–16 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 16 手册 · 20.17 开发人员选项 本站手册 官方原文

启用原本不会记录的恢复相关调试输出。此参数允许用户覆盖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 或连接名额放大。
  • 把服务器能启动或查询能完成误当作数据与行为正确的证明。

演化历史

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

  1. 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

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Developer Options 开发者选项 27 个 ↗
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 —
遇到损坏页面头时把内存中的页面清零后继续。 现存