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

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

不受支持的版本: 7.0 / 6.5 / 6.3
历史版本PostgreSQL 6.5 已于 2004 年 6 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

26.3. 调试消息

postmaster 偶尔会打印出 一些在故障排除时往往 很有帮助的消息。如果你希望 查看来自 postmaster 的调试消息, 可以 用 -d 选项启动它并把输出重定向到 日志文件:

% postmaster -d >& pm.log &
    

如果你不希望看到这些消息,可以键入

% postmaster -S
    

这样 postmaster 就会"S"静默。 注意,最后 一个示例的末尾没有与号("&"),所以 postmaster 将在前台运行。

26.3.1. pg_options #

注意

由 Massimo Dal Zotto 贡献。

可选文件 data/pg_options 包含后端 用来控制跟踪消息和其他后端可调参数的运行时 选项。 这个文件的有趣之处在于,后端在收到 SIGHUP 信号时会 重新读取它,因此无需重启 Postgres 就可以即时更改运行时 选项。 这个文件中指定的选项可以是跟踪 包(backend/utils/misc/trace.c)使用的调试标志, 也可以是后端用来控制其行为的数值 参数。 新的选项和参数必须在 backend/utils/misc/trace.c 和 backend/include/utils/trace.h 中定义。

pg_options 也可以用 -T 开关随 Postgres 一起指定:

postgres options -T "verbose=2,query,hostlookup-"
    

用于打印错误和调试消息的函数现在可以利用 syslog(2) 设施了。打印到 stdout 或 stderr 的消息带有一个还包含后端 pid 的时间戳前缀:

#timestamp          #pid    #message
980127.17:52:14.173 [29271] StartTransactionCommand
980127.17:52:14.174 [29271] ProcessUtility: drop table t;
980127.17:52:14.186 [29271] SIIncNumEntries: table is 70% full
980127.17:52:14.186 [29286] Async_NotifyHandler
980127.17:52:14.186 [29286] Waking up sleeping backend process
980127.19:52:14.292 [29286] Async_NotifyFrontEnd
980127.19:52:14.413 [29286] Async_NotifyFrontEnd done
980127.19:52:14.466 [29286] Async_NotifyHandler done
    

这种格式提高了日志的可读性,使人们能准确 了解哪个后端在什么时间做什么。它也使得 编写简单的 awk 或 perl 脚本来监视日志以 检测数据库错误或问题、或计算事务时间统计 变得更容易。

打印到 syslog 的消息使用日志设施 LOG_LOCAL0。 syslog 的使用可以用 syslog pg_option 来 控制。遗憾的是,许多函数直接调用 printf() 把消息打印到 stdout 或 stderr,这样的输出不能被 重定向到 syslog 也不能带时间戳。 最好把所有对 printf 的调用都替换为 PRINTF 宏、把输出到 stderr 改为使用 EPRINTF, 这样我们就能以统一的方式控制所有输出。

pg_options 文件的格式如下:

# comment
option=integer_value  # set value for option
option                # set option = 1
option+               # set option = 1
option-               # set option = 0
     

注意,keyword 也可以是 backend/utils/misc/trace.c 中定义的 选项名的缩写。

完整的选项关键字及其可能取值的列表请参考 使用 pg_options。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。