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

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 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

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

本站未收录 PostgreSQL 16 手册,以下为 PostgreSQL 13 的译文。

启用原本不会记录的恢复相关调试输出。此参数允许用户覆盖log_min_messages的常规设置,但仅针对特定消息。 它旨在用于调试热备。有效值为DEBUG5DEBUG4DEBUG3DEBUG2DEBUG1LOG。 默认值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
遇到损坏页面头时把内存中的页面清零后继续。 现存