错误报告和日志(ERROR REPORTING AND LOGGING)类别参数
本文档介绍了系统配置参数中 错误报告和日志类别的相关参数。
注意!
为确保系统稳定与安全,请务必谨慎手动修改相关参数。
在哪里记录日志(Where to Log)
event_source
当启用了向事件日志记录时,这个参数决定用来标识日志中 YMatrix 消息的程序名。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | PostgreSQL | segments;system;restart |
logging_collector
这个参数启用日志收集器,它是一个捕捉被发送到 stderr
的日志消息的后台进程,并且它会将这些消息重定向到日志文件中。
- 这种方法比记录到
syslog
通常更有用,因为某些类型的消息不会在syslog
输出中出现(如动态链接器错误消息、由archive_command
等脚本产生的错误消息等)。 - 这个参数只能在服务器启动时设置。
- 注意:也可以不使用日志收集器而把日志记录到
stderr
,日志消息将只会去到服务器的stderr
被定向到的位置。不过,那种方法只适合于低日志量,因为它没有提供方法来轮转日志文件。还有,在某些不使用日志收集器的平台上可能会导致丢失或者混淆日志输出,因为多个进程并发写入同一个日志文件时会覆盖彼此的输出。 - 注意:日志收集器从不丢失消息。这意味着在极高的负载下,如果服务器进程试图在收集器已经落后时发送更多的日志消息,则会被阻塞。相反,
syslog
倾向于在无法写入消息时丢掉消息,这意味着在这样的情况下它可能会无法记录某些消息,但是它不会阻塞系统的其他部分。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | segments;system;restart |
log_destination
YMatrix 支持多种方法来记录服务器消息,设置此参数为一个想要的日志目的地的列表,值之间用逗号分隔。
- 如果
csvlog
被包括在log_destination
中,日志项会以“逗号分隔值” (CSV)格式被输出,这样可以很方便地把日志载入到程序中。要产生 CSV 格式的日志输出,必须启用logging_collector
。 - 当包括有
stderr
或csvlog
时,会创建文件current_logfiles
来记录当前正在被日志收集器使用的日志文件的位置以及相关的日志目的地。这提供了一种查找节点实例当前使用的日志的便利手段。这里是该文件内容的一个例子:stderr log/postgresql.log csvlog log/postgresql.csv
当轮转效应创建出一个新的日志文件时,以及
log_destination
被重载时,current_logfiles
文件会被重建。当log_destination
中不包括stderr
和csvlog
时以及当日志收集器被禁用时,这个文件会被删除。 - 注意:在大多数 Unix 系统上,你将需要修改系统的 syslog 守护进程的配置来使用
log_destination
的syslog
选项。YMatrix 可以在 syslog 设备LOCAL0
到LOCAL7
中记录(见syslog_facility
),但是大部分平台上的默认 syslog 配置会丢弃所有这种消息。你将需要增加这样的内容:local0.* /var/log/postgresql
到 syslog 守护进程的配置文件来让它工作。 - 在 Windows 上,当你使用
log_destination
的eventlog
选项时,你应该在操作系统中注册一个事件源极其库,这样 Windows 事件查看器能够清楚地显示事件日志消息。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
string | stderr | stderr / csvlog / syslog / eventlog(on Windows) | segments;system;reload |
log_directory
当 logging_collector
被启用时,这个参数决定日志文件将被在哪个目录下创建。
- 它可以被指定为一个绝对路径,也可以被指定为一个集群数据目录的相对路径。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | log | segments;system;reload |
log_file_mode
设置日志文件的创建模式。
- 在 Unix 系统上,当
logging_collector
被启用时,这个参数设置日志文件的权限(在微软 Windows 上这个参数将被忽略)。 - 默认的权限是
0600
,表示只有服务器拥有者才能读取或写入日志文件。 - 其他常用的设置是
0640
,它允许拥有者的组成员读取文件。注意:你需要修改log_directory
为集群数据目录之外的某个位置,此设置才生效。 - 注意:在任何情况下,让日志文件变成任何人都可读是不明智的,因为日志文件中可能包含敏感数据。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 0600 | 0000 ~ 0777 | segments;system;reload |
log_filename
当 logging_collector
被启用时,这个参数设置被创建的日志文件的文件名。
- 该值被视为一种 strftime 模式,因此
%
转义可以被用来指定根据时间变化的文件名(注意如果有任何时区独立的%
转义,计算将在由log_timezone
(见下文)指定的时区中完成)。被支持的%
转义和开放组织的 strftime 说明中列举的类似。注意系统的 strftime 不会被直接使用,因此平台相关(非标准)的扩展无法工作。 - 如果你不使用转义来指定一个文件名,你应该计划使用一个日志轮转工具来避免最终填满整个磁盘。
- 如果在
log_destination
中启用了 CSV 格式输出,.csv
将会被追加到时间戳日志文件名中来创建 CSV 格式输出(如果log_filename
以.log
结尾,该后缀会被替换)。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | gpdb-%Y-%m-%d_%H%M%S.csv | segments;system;reload |
log_rotation_age
确定 YMatrix 数据库将消息写入活动日志文件的时间(分钟)。
- 经过这段时间后,文件将关闭并创建一个新的日志文件。
- 设置为
0
以禁用基于时间的新日志文件创建。 - 默认值为
1440分钟
,即 1天。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1440 | 0 ~ (INT_MAX/60) | master;system;restart |
log_rotation_size
确定触发旋转的单个日志文件的大小(KB)。
- 当日志文件大小等于或大于此大小时,将关闭该文件并创建新的日志文件。
- 设置为零以禁用基于大小的新日志文件的创建。
- 最大值为
INT_MAX
。如果指定了无效值,则使用默认值。 - 默认值为
1048576KB
,即 1GB。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1048576 | 0 ~ (INT_MAX/1024) | master;system;restart |
log_truncate_on_rotation
截断(覆盖)而不是追加任何已有的同名日志文件。
- 不过,截断只在一个新文件由于基于时间的旋转被打开时发生,在服务器启动或基于尺寸的旋转时不会发生。如果被关闭,在所有情况下以前存在的文件将被追加。例如,使用这个设置和一个类似
gpseg-%H.log 的 log_filename
将导致产生 24 小时日志文件,并且循环地覆盖它们。 - 示例:假如你想要保留 7 天的日志,每天的一个日志文件被命令为
server_log.Mon
、server_log.Tue
等等,并且自动用本周的日志覆盖上一周的日志。那么你可以:将log_filename
设置为server_log.%a
、将log_truncate_on_rotation
设置为on
并且将log_rotation_age
设置为7d
。 - 示例:假如你想要保留 24 小时的日志,每个小时一个日志文件,但是在日志文件尺寸超过 1GB 时轮转。那么你可以:将
log_filename
设置为server_log.%H%M
、 将log_truncate_on_rotation
设置为on
、 将log_rotation_age
设置为1h
并且 将log_rotation_size
设置为10MB
。 在log_filename
中包含%M
字符允许可能发生的任何大小驱动的旋转,以选择一个与每小时的初始文件名不同的新文件名。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;system;restart |
syslog_facility
当启用了向 syslog 记录时,这个参数决定要使用的 syslog 设备。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | LOCAL0 | LOCAL0 / LOCAL1 / LOCAL2 / LOCAL3 / LOCAL4 / LOCAL5 / LOCAL6 / LOCAL7 | segments;system;reload |
syslog_ident
当启用了向 syslog 记录时,这个参数决定用来标识 syslog 中的 YMatrix 消息的程序名。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | postgres | segments;system;reload |
syslog_sequence_numbers
当日志被记录到 syslog 并且这个设置为 on
(默认)时,每一个消息会被加上一个增长的序号作为前缀。
- 这种行为避开了很多 syslog 实现默认采用的 “--- 上一个消息重复 N 次 ---” 形式。在现代 syslog 实现中,避免重复消息是可以配置的(例如 rsyslog 中的
$RepeatedMsgReduction
),因此这个参数可能不是必需的。 - 此外,如果你真的想避免重复消息,你可以把这个参数设置为
off
。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | segments;system;reload |
syslog_split_messages
当启用把日志记录到 syslog 时,这个参数决定消息如何送达 syslog。
- 当设置为
on
(默认)时,消息会被分成行,并且长的行也会被划分以便能够放到 1024 字节中,这是传统 syslog 实现一种典型的尺寸限制。 - 当设置为
off
时,YMatrix 服务器日志消息会被原样送达 syslog 服务,而处理大体量消息的任务由 syslog 服务负责。 - 如果 syslog 最终被记录到一个文本文件中,那么两种设置的效果是一样的,但最好设置为
on
。因为大部分 syslog 实现要么不能处理大型消息,要么需要做特殊的配置以处理大型消息。但是如果 syslog 最终写入到某种其他媒介,有必要让消息保持逻辑上的整体性(也更加有用)。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | segments;system;reload |
什么时候记录日志(When to Log)
gp_interconnect_debug_retry_interval
指定在服务器配置参数 gp_log_interconnect
设置为 debug
时记录 YMatrix 数据库互连调试消息的时间间隔(秒)。
- 日志消息包含有关 YMatrix 数据库 Segment 实例工作进程之间的互连通信的信息。
- 调试 Segment 实例之间的网络问题时,这些信息可能会有所帮助。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 10 | 1 ~ 4096 | master;session;reload |
log_min_duration_statement
如果语句的持续时间大于或等于指定的时间(毫秒),则将语句及其持续时间记录在单个日志行上。
- 将此值设置为
0
将打印所有语句及其持续时间。 -1
禁用该功能。- 例如,如果将其设置为
250
,则将记录运行250
毫秒或更长时间的所有 SQL 语句。 - 启用此选项可用于跟踪应用程序中未优化的查询。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | -1 | -1 ~ INT_MAX | master;session;reload;superuser |
log_min_error_statement
控制是否还将在服务器日志中记录导致错误情况的 SQL 语句。
- 将记录导致指定级别或更高级别的错误的所有 SQL 语句。
- 启用此选项有助于跟踪服务器日志中出现的任何错误的来源。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | error | debug5 / debug4 / debug3 / debug2 / debug1 / info / notice / warning / error / fatal / panic 每个级别都包括以后的所有级别 级别越靠后,被发送的消息越少 |
master;session;reload;superuser |
log_min_messages
控制哪些消息级别被写入到服务器日志。
- 注意:
log
在此参数中有与client_min_messages
中不同的排名。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | warning | debug5 / debug4 / debug3 / debug2 / debug1 / info / notice / warning / error / log / fatal / panic 每个级别都包括以后的所有级别 级别越靠后,被发送的消息越少 |
master;session;reload;superuser |
log_statement_sample_rate
设置将要记录的持续时间超过 log_min_duration_statement
语句的比例。
- 抽样是随机的,例如
0.5
意味着统计上有二分之一的机会记录任何给定的语句。 - 默认值为
1.0
,表示记录所有采样语句。0.0
则会禁用采样语句持续时间日志记录,与将log_min_duration_sample
设置为-1
相同。 - 只有超级用户和具有相应
SET
权限的用户才能更改此设置。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
floating point | 1.0 | 0.0 ~ 1.0 | segments;session;reload;superuser |
log_transaction_sample_rate
设置所有语句都被记录的事务的部分,以及由于其他原因而记录的语句。
- 它适用于每个新事务,而不考虑其语句的持续时间。
0
表示不记录任何额外事务的语句。1
表示记录所有事务的所有语句。- 此参数有助于跟踪事务样本。
- 注意:就像所有的语句-日志选项一样,这个选项可能会增加大量开销。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
real | 0.001 | 0.0 ~ 1.0 | segments;session;reload;superuser |
下表解释了 YMatrix 所使用的消息严重级别。如果日志输出被发送到 syslog 或 Windows 的 eventlog,严重级别会按照表中所示进行转换。
严重性 | 用法 | syslog | eventlog |
---|---|---|---|
DEBUG1..DEBUG5 | 为开发者提供连续的更详细的信息 | DEBUG | INFORMATION |
INFO | 提供用户隐式要求的信息,例如来自 VACUUM VERBOSE 的输出 |
INFO | INFORMATION |
NOTICE | 提供可能对用户有用的信息,例如长标识符截断提示 | NOTICE | INFORMATION |
WARNING | 提供可能出现的问题的警告,例如在一个事务块外 COMMIT |
NOTICE | WARNING |
ERROR | 报告一个导致当前命令中断的错误 | WARNING | ERROR |
LOG | 报告管理员可能感兴趣的信息,例如检查点活动 | INFO | INFORMATION |
FATAL | 报告一个导致当前会话中断的错误 | ERR | ERROR |
PANIC | 报告一个导致所有数据库会话中断的错误 | CRIT | ERROR |
optimizer_minidump
Greenplum 的 GPORCA 优化器生成 minidump
文件以描述给定查询的优化上下文。
- 文件中的信息格式不易于调试或故障排除。
minidump
文件位于主数据目录下,并使用以下命名格式:Minidump_date_time.mdp
。 minidump
文件包含此查询相关信息:- catalog 对象,包括优化器所需的数据类型,表,运算符和统计信息
- 查询的内部表示(DXL)
- 优化器制定的计划的内部代表(DXL)
- 传递给优化器的系统配置信息,例如服务器配置参数,成本和统计信息配置以及 Segment 数
- 优化查询时生成的堆栈错误跟踪
- 将此参数设置为
always
会为所有查询生成一个minidump
;将此参数设置为onerror
以最小化总优化时间。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | onerror | onerror / always | master;session;reload |
记录什么到日志(What to Log)
application_name
设置客户端会话的应用程序名称。
- 例如,如果通过 psql 连接,则将其设置为
psql
。 - 设置应用程序名称允许在日志消息和统计信息视图中报告。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | master;session;reload |
debug_pretty_print
缩进调试输出产生更可读但是更长的输出格式。
- 当被设置时,
debug_pretty_print
会缩进由debug_print_parse
、debug_print_rewritten
或debug_print_plan
产生的输出。 client_min_messages
或者log_min_messages
必须是DEBUG1
或者更低。- 这将导致比关闭参数时使用的“紧凑”模式可读性更强但是更长的输出。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | master;session;reload |
debug_print_parse
对于每一个执行的查询,打印出结果分析树。
client_min_messages
或log_min_messages
必须是DEBUG1
或者更低。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
debug_print_plan
对于每个执行的查询,打印出 YMatrix 并行查询执行计划。
client_min_messages
或log_min_messages
必须是DEBUG1
或者更低。- 当设置时,会打印生成的解析树,查询重写输出,或执行的每个查询的执行计划。这些信息是在
log
信息级别发出,因此默认的,它们会出现在服务器日志中,但不会发送给客户端。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
debug_print_prelim_plan
对于每个执行的查询,打印出初步查询计划。
client_min_messages
或log_min_messages
必须是DEBUG1
或者更低。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
debug_print_rewritten
对于每个执行的查询,打印出查询重写输出。
client_min_messages
或log_min_messages
必须是DEBUG1
或者更低。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
debug_print_slice_table
对于每个执行的查询,打印查询分片计划。
client_min_messages
或log_min_messages
必须是DEBUG1
或者更低。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
gp_debug_linger
在出现 fatal
错误之后,YMatrix 进程保留的时间(秒)。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 0 | 0 ~ 3600 | master;session;reload |
gp_log_format
指定服务器日志文件的格式。
- 如果使用
gp_toolkit
管理模式,则日志文件必须为CSV
格式。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | csv | csv / text | segments;system;restart |
gp_log_interconnect
控制写入日志文件的有关 YMatrix 数据库 Segment 实例工作进程之间通信的信息量。
- 日志信息将写入 Master 实例日志和 Segment 实例日志。
- 增加日志记录量可能会影响性能并增加磁盘空间使用量。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | terse | terse / off / verbose / debug | master;session;reload |
gp_reraise_signal
如果启用,将在发生致命服务器错误时尝试生成 core 文件。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
log_checkpoints
导致检查点和重启点被记录在服务器日志中。
- 一些统计信息也被包括在日志消息中,包括写入缓冲区的数据和写它们所花的时间。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;system;reload |
log_connections
这将向服务器日志输出一行,详细说明每个成功的连接。
- 只有超级用户能在会话开始时更改这个参数,在会话中它不能被更改。
- 注意:某些客户端程序(例如 psql)在要求密码时会尝试连接两次,因此重复的“收到连接”消息并不一定表示一个错误。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;system;restart;superuser |
log_disconnections
这在客户端会话终止时在服务器日志中输出一行,并包括会话的持续时间。
- 只有超级用户能在会话开始时更改这个参数,在会话中它不能被更改。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;system;restart;superuser |
log_dispatch_stats
设置为 on
时,此参数将添加一条日志消息,其中包含有关语句分派的详细信息。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;system;restart |
log_duration
导致记录满足 log_statement
的每个已完成语句的持续时间。
- 对于使用扩展查询协议的客户端,解析、绑定和执行步骤的持续时间将被独立记录。
- 注意:启用
log_duration
和设置log_min_duration_statement
为0
之间的区别是:超过log_min_duration_statement
强制查询的文本被记录,但这个选项不会。因此,如果log_duration
为on
并且log_min_duration_statement
为正值,所有持续时间都将被记录,但是只有超过阈值的语句才会被记录查询文本。这种行为有助于在高负载安装中收集统计信息。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload;superuser |
log_error_verbosity
控制记录的每条消息在服务器日志中写入的详细信息量。
- 此参数的每一个选项都会为显示的消息增加更多域:
terse
排除记录 DETAIL、HINT、QUERY 和 CONTEXT 错误信息。verbose messages
输出包括 SQLSTATE 错误码(见附录 A)以及产生错误的源代码文件名、函数名和行号。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | default | terse / default / verbose messages | master;session;reload;superuser |
log_hostname
默认情况下,连接日志消息只显示连接主机的 IP 地址。
- 打开这个参数将导致也记录主机名。
- 注意:根据你的主机名解析来设置可能会导致很不可忽视的性能损失。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;system;restart |
log_line_prefix
这是一个 printf 风格的字符串,它在每个日志行的开头输出。
%
字符开始“转义序列”,它将被按照下文描述的替换成状态信息。未识别的转义被忽略。- 其他字符被直接复制到日志行。某些转义只被会话进程识别并且被主服务器进程等后台进程当作空值。
- 在
%
和该选项之间指定一个数字,可以让状态信息左对齐或右对齐。 - 负值会在右边用空格填充状态信息至最小宽度,而正值则会在左边填充。填充对于日志文件的可读性大有帮助。
- 默认值为
%m [%p]
,即记录时间戳和进程 ID。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | %m [%p] | segments;system;reload |
转义 | 效果 | 只限会话 |
---|---|---|
%a | 应用名 | 是 |
%u | 用户名 | 是 |
%d | 数据库名 | 是 |
%r | 远程主机名或 IP 地址,以及远程端口 | 是 |
%h | 远程主机名或 IP 地址 | 是 |
%p | 进程 ID | 否 |
%t | 无毫秒的时间戳 | 否 |
%m | 带毫秒的时间戳 | 否 |
%n | 带毫秒的时间戳(作为 Unix 时间戳) | 否 |
%i | 命令标签:会话当前命令的类型 | 是 |
%e | SQLSTATE 错误代码 | 否 |
%c | 会话 ID:见下文 | 否 |
%l | 对每个会话或进程的日志行号,从 1 开始 | 否 |
%s | 进程开始的时间戳 | 否 |
%v | 虚拟事务 ID (backendID/localXID) | 否 |
%x | 事务 ID (如果未分配则为 0) | 否 |
%q | 不产生输出,但是告诉非会话进程在字符串的这一点停止;会话进程忽略 | 否 |
%% | 纯文字 % | 否 |
%c
转义打印一个准唯一的会话标识符,它由两个 4 字节的十六进制数(不带先导零)组成,以点号分隔。这些数字是进程启动时间和进程 ID,因此 %c
也可以被用作保存打印这些项的方式的空间。例如,要从pg_stat_activity
生成会话标识符,使用这个查询:
SELECT to_hex(trunc(EXTRACT(EPOCH FROM backend_start))::integer) || '.' ||
to_hex(pid)
FROM pg_stat_activity;
- 注意:如果你为
log_line_prefix
设置了非空值,你通常应该让它的最后一个字符为空格,这样用以提供和日志行的剩余部分的视觉区别。也可以使用标点符号。 - 注意:syslog 会产生自己的时间戳和进程 ID 信息,因此如果你记录到 syslog 你可能不希望包括那些转义信息。
- 注意:在包括仅在会话(后端)上下文中可用的信息(如用户名或者数据库名)时,
%q
转义很有用。例如:log_line_prefix = '%m [%p] %q%u@%d/%a '
。
log_lock_waits
控制当一个会话为获得一个锁,等到超过 deadlock_timeout
时,是否要产生一个日志消息。
- 这有助于判断是否因锁等待导致性能低下。
log lock waits
值需大于等于deadlock_timeout
。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;session;reload;superuser |
log_replication_commands
导致每一个复制命令都被记录在服务器日志中。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | segments;session;reload;superuser |
log_statement
控制记录哪些 SQL 语句。
ddl
记录所有数据定义命令,如CREATE
,ALTER
和DROP
命令;mod
记录所有 DDL 语句,以及数据修改语句如INSERT
,UPDATE
,DELETE
,TRUNCATE
和COPY FROM
。如果包含的命令属于适当的类型,也会记录PREPARE
和EXPLAIN ANALYZE
语句;all
即所有语句。- 对于使用扩展查询协议的客户端,当收到一个执行消息时会产生日志并且会包括绑定参数的值(任何内嵌的单引号会被双写)。
- 注意:即使使用
log_statement = all
设置,包含简单语法错误的语句也不会被记录。这是因为只有在完成基本语法解析并确定了语句类型之后才会发出日志消息。在扩展查询协议的情况下,在执行阶段之前(即在解析分析或规划期间)出错的语句也不会被记录。需要将log_min_error_statement
设置为ERROR
(或更低)来记录这种语句。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | none | none / ddl / mod / all | master;session;reload;superuser |
log_temp_files
控制对临时文件名和大小的记录。
- 临时文件可以被创建用来排序、哈希和存储临时查询结果。
- 如果启用这个设置,当每一个临时文件被删除时都会产生一个日志项。
- 如果设置此值为
0
,则表示记录所有临时文件信息,而正值只记录大小大于或等于指定数据量的文件。 - 默认值为
-1
,即禁用日志记录。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | -1 | -1 ~ INT_MAX | segments;system;restart;superuser |
log_timezone
设置用于写入日志的时间戳的时区。
- 与
TimeZone
不同,此值是系统范围的,因此所有会话都将一致地报告时间戳。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | Asia/Shanghai | segments;system;restart |
进程标题(Process Title)
此部分参数控制服务器进程的进程标题如何被修改。进程标题通常可以用 ps
或者 Windows 上的进程浏览器等程序来查看。
cluster_name
为不同目的设置标识这个数据库集群(实例)的名称。此集群名称出现在该集群中所有服务器进程的进程标题中。
- 此外,它还是备用连接的默认应用名称。(请见 synchronous_standby_names)
- 这个名称可以是任何长度不超过 NAMEDATALEN 个字符(在标准编译中是 64 字符)的任何字符串。
- 只有可打印的 ASCII 字符能被用在此参数值中。其他字符将被替换为问号(?)。
- 如果这个参数被设置为空字符串 ''(也是默认值),将不会显示名称。
- 这个参数只能在服务器启动时设置。
数据类型 | 默认值 | 设置分类 |
---|---|---|
string | segments;system;restart |
update_process_title
启用进程标题更新,每次服务器接收到一个新的 SQL 命令时都更新进程标题。
- 在大部分平台上这个设置默认为
on
,但是由于 Windows 上更新进程标题的开销更大,所以在 Windows 这个设置默认为off
。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | segments;session;reload |