{"Entry":{"collection":"guc","key":"trace_recovery_messages","name":"trace_recovery_messages","aliases":[],"metadata":{"baseline":false,"boot_human":"log","boot_val":"log","category":"Developer Options","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"8.4","status":"added","to":"9.0"},{"documentation_changed":true,"fields":{},"from":"14","status":"changed","to":"15"},{"documentation_changed":false,"fields":{},"from":"16","status":"removed","to":"17"}],"content_hash":"f667445959677b7bf4e44bee98c7474e88d88608808c346d868ab7eb06c950b3","context":"sighup","default_changed_in":[],"default_history":[{"from":"9.0","to":"16","value":"log"}],"editorial":{"advice":{"olap":"Analytical workload does not justify retaining the removed trace_recovery_messages. Diagnose current versions with supported EXPLAIN, logs, or the documented replacement.","oltp":"Do not configure trace_recovery_messages on current PostgreSQL. Remove it during upgrades; use any named successor only for the same controlled developer test, not as a production default.","small":"Delete trace_recovery_messages from modern configurations. Unknown-parameter startup failure and diagnostic overhead outweigh any historical use."},"mechanism":["Through PG16, trace_recovery_messages remapped recovery DEBUG messages at or above a chosen severity to LOG, making normally hidden recovery internals visible during testing.","It changed message visibility, not recovery decisions, WAL replay order, or durability. Verbose recovery logging could be extremely large and timing-sensitive.","PostgreSQL 17 removed the parameter. Upgrade configurations must delete it; current recovery diagnosis should use supported logging, progress, and WAL inspection facilities. Its SIGHUP context allows configuration reload without a server restart."],"pitfalls":["Leaving trace_recovery_messages enabled after the bounded diagnostic or recovery task.","Running the experiment on the only copy of production data.","Underestimating log, core-file, temporary-file, WAL, CPU, or connection-slot amplification.","Treating a server that merely starts or completes a query as proof that data and behavior are correct."],"references":[{"title":"PostgreSQL 16: trace_recovery_messages","url":"https://www.postgresql.org/docs/16/runtime-config-developer.html#GUC-TRACE-RECOVERY-MESSAGES"}],"related":["log_min_messages","restore_command","recovery_min_apply_delay","wal_consistency_checking"],"summary":"trace_recovery_messages — Enables logging of recovery-related debugging information. Observed in PG9.0–16; its last measured boot default is log in PG16, with sighup context. It was removed in PG17."},"enumvals":["debug5","debug4","debug3","debug2","debug1","log","notice","warning","error"],"first_version":"9.0","group":"Developer Options","group_slug":"developer","imported_at":"2026-09-27T17:57:32.192058+08:00","intro_commit":{},"key":"trace_recovery_messages","last_version":"16","max_val":"","min_val":"","name":"trace_recovery_messages","position":422,"present_in":["9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16"],"short_desc":"Enables logging of recovery-related debugging output that otherwise would not be logged.","short_desc_zh":"","source_rev":"english-manuals:23942cee3de78405b433e8892ff5a279a915600badae7d41c680dad9b7bb8a25","unit":"","vartype":"enum"}},"Definition":{"Collection":"guc","Key":"trace_recovery_messages","SourceDatabase":"center","Version":"16","SourceTable":"guc","SourceKey":"trace_recovery_messages","SourceRevision":"english-manuals:23942cee3de78405b433e8892ff5a279a915600badae7d41c680dad9b7bb8a25","Facts":{"boot_val":"log","category":"Developer Options","context":"sighup","description":"Enables logging of recovery-related debugging output that otherwise would not be logged. This parameter allows the user to override the normal setting of log_min_messages, but only for specific messages. This is intended for use in debugging hot standby. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, and LOG. The default, LOG, does not affect logging decisions at all. The other values cause recovery-related debug messages of that priority or higher to be logged as though they had LOG priority; for common settings of log_min_messages this results in unconditionally sending them to the server log. This parameter can only be set in the postgresql.conf file or on the server command line.","doc":{"anchor":"GUC-TRACE-RECOVERY-MESSAGES","file":"runtime-config-developer.html","lang":"en","sha256":"1f0fc0edcf31e59fba5741991351176fb20c9f76fe81bf480891d29bd14adad6","slug":"16"},"documented":true,"enumvals":["debug5","debug4","debug3","debug2","debug1","log","notice","warning","error"],"extra_desc":"Each level includes all the levels that follow it. The later the level, the fewer messages are sent.","lang":"en","max_val":null,"metadata_version":"16","min_val":null,"name":"trace_recovery_messages","short_desc":"Enables logging of recovery-related debugging information.","source":"pg-settings-source-snapshot","unit":null,"vartype":"enum"},"ManualEvidence":{"doc":{"anchor":"GUC-TRACE-RECOVERY-MESSAGES","file":"runtime-config-developer.html","lang":"en","sha256":"1f0fc0edcf31e59fba5741991351176fb20c9f76fe81bf480891d29bd14adad6","slug":"16"}},"MeasuredEvidence":{"metadata_version":"16"}},"Text":{"Collection":"guc","Key":"trace_recovery_messages","SourceDatabase":"pgweb","Version":"16","Locale":"zh-Hans","Title":"trace_recovery_messages","Summary":"","BodyHTML":"\u003cp\u003e启用原本不会记录的恢复相关调试输出。此参数允许用户覆盖\u003ca href=\"/docs/16/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\" rel=\"nofollow\"\u003elog_min_messages\u003c/a\u003e的常规设置，但仅针对特定消息。它旨在用于调试热备。有效值为\u003ccode\u003eDEBUG5\u003c/code\u003e、\u003ccode\u003eDEBUG4\u003c/code\u003e、\u003ccode\u003eDEBUG3\u003c/code\u003e、\u003ccode\u003eDEBUG2\u003c/code\u003e、\u003ccode\u003eDEBUG1\u003c/code\u003e和\u003ccode\u003eLOG\u003c/code\u003e。默认值\u003ccode\u003eLOG\u003c/code\u003e完全不影响是否记录消息的决定。其他值会让该优先级或更高优先级的恢复相关调试消息按\u003ccode\u003eLOG\u003c/code\u003e优先级记录；对于\u003ccode\u003elog_min_messages\u003c/code\u003e的常见设置，这会无条件地将它们发送到服务器日志。此参数只能在\u003ccode\u003epostgresql.conf\u003c/code\u003e文件中或在服务器命令行上设置。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"5b37ce8e556f243c280eb9275ba72c6e63e47088247300a6632124b7d1f15407","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e启用原本不会记录的恢复相关调试输出。此参数允许用户覆盖\u003ca href=\"/docs/16/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\"\u003elog_min_messages\u003c/a\u003e的常规设置，但仅针对特定消息。它旨在用于调试热备。有效值为\u003ccode class=\"literal\"\u003eDEBUG5\u003c/code\u003e、\u003ccode class=\"literal\"\u003eDEBUG4\u003c/code\u003e、\u003ccode class=\"literal\"\u003eDEBUG3\u003c/code\u003e、\u003ccode class=\"literal\"\u003eDEBUG2\u003c/code\u003e、\u003ccode class=\"literal\"\u003eDEBUG1\u003c/code\u003e和\u003ccode class=\"literal\"\u003eLOG\u003c/code\u003e。默认值\u003ccode class=\"literal\"\u003eLOG\u003c/code\u003e完全不影响是否记录消息的决定。其他值会让该优先级或更高优先级的恢复相关调试消息按\u003ccode class=\"literal\"\u003eLOG\u003c/code\u003e优先级记录；对于\u003ccode class=\"varname\"\u003elog_min_messages\u003c/code\u003e的常见设置，这会无条件地将它们发送到服务器日志。此参数只能在\u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e文件中或在服务器命令行上设置。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
