CONFIGURATION PARAMETER错误报告和日志 / 记录到哪里
syslog_split_messages
按行并按 1024 字节限制拆分发送给 syslog 的消息。
Split messages sent to syslog by lines and to fit into 1024 bytes.
布尔 重载生效 引入 9.6 现存至 20 devel 0 次默认值变更
- 类型
- 布尔bool
- 上下文
- 重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
- 默认值
on- 引入版本
- 9.6
- 状态
- 现存
版本轨迹
相对 PostgreSQL 17 无变化。
默认值变迁
默认值自 PostgreSQL 9.6 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
本版译文与 PostgreSQL 10 完全一致,下面就是同一段文字。
当启用把日志记录到syslog时,这个参数决定消息如何送达 syslog。当设置为 on(默认)时,消息会被分成行,并且长的行也会被划分以便能够放到 1024 字节中,这是传统 syslog 实现一种典型的尺寸限制。当设置为 off 时,PostgreSQL 服务器日志消息会被原样送达 syslog 服务,而处理可能的大体量消息的任务由 syslog 服务负责。
如果 syslog 最终被记录到一个文本文件中,那么两种设置的效果是一样的,但最好设置为 on,因为大部分 syslog 实现要么不能处理大型消息,要么需要做特殊的配置以处理大型消息。但是如果 syslog 最终写入到某种其他媒介,有必要让消息保持逻辑上的整体性(也更加有用)。
这个参数只能在postgresql.conf文件中或通过服务器命令行进行设置。
机制详解
syslog_split_messages:按行并按 1024 字节限制拆分发送给 syslog 的消息。启用后 PostgreSQL 按行及传统 1024 字节限制拆分;关闭后则依赖接收端处理多行或长载荷。
syslog_split_messages 属于 SIGHUP 上下文:重新加载配置即可在不重启的情况下激活服务器新值,后续读取它的操作使用刷新值。
只有 log_destination 包含 syslog 时它才生效;随后 facility、ident、序号、拆分、主机守护进程与远端接收器共同定义记录交付。
调优建议
按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。
-
OLTP在线事务处理
让 syslog_split_messages 匹配接收端 syslog 守护进程的路由、分帧、去重与消息大小契约,并用真实收集器验证故障转移与背压。
-
OLAP分析与批处理
以分析日志突发和多行计划测试 syslog_split_messages,避免拆分或接收端限制破坏记录边界。
-
小规格低配实例与开发机
为 syslog_split_messages 沿用主机既有 syslog 约定;除非有明确目的与大小限制,否则不要并行保留本地重复文件。
常见问题
- 编辑 syslog_split_messages 后没有重新加载配置,也没有核对有效值与后续行为。
- 修改 PostgreSQL 分帧或标识,却未把主机守护进程与远端接收器作为整体测试。
- 默认假设 syslog 会保留无限消息长度、多行边界、顺序或重复记录。
- 没有回滚计划及客户端或运维兼容测试,就全局修改 syslog_split_messages。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
PostgreSQL 20 ← 19 沿用 19
事实沿用 19
-
PostgreSQL 9.6 ← 9.5 新增此参数
PostgreSQL 9.6 起可用
逐版本快照
每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
| 记录到哪里 14 | |||||
event_source |
字符串 | 重启生效 | PostgreSQL |
— | |
| 设置在 Windows 事件日志中标识 PostgreSQL 消息的应用名称。 | 现存 | ||||
log_destination |
字符串 | 重载生效 | stderr |
— | |
| 设置服务器日志输出的目标。 | 现存 | ||||
log_directory |
字符串 | 重载生效 | log |
101 次 | |
| 设置日志文件的目标目录。 | 现存 | ||||
log_file_mode |
整数 | 重载生效 | 384 |
— | |
| 设置日志文件的权限模式。 | 现存 | ||||
log_filename |
字符串 | 重载生效 | postgresql-%Y-%m-%d_%H%M%S.log |
— | |
| 设置日志文件名模式。 | 现存 | ||||
log_rotation_age |
整数 | 重载生效 | 1 d |
— | |
| 设置强制轮转日志文件前等待的时间。 | 现存 | ||||
log_rotation_size |
整数 | 重载生效 | 10 MiB |
181 次 | |
| 设置触发轮转前单个日志文件可达到的最大大小。 | 现存 | ||||
log_truncate_on_rotation |
布尔 | 重载生效 | off |
— | |
| 轮转时截断同名的既有日志文件。 | 现存 | ||||
logging_collector |
布尔 | 重启生效 | off |
— | |
| 启动子进程,将 stderr、csvlog 和/或 jsonlog 捕获到日志文件。 | 现存 | ||||
silent_mode |
布尔 | 重启生效 | off |
— | |
| 让服务器以静默模式运行。 | 于 9.2 移除 | ||||
syslog_facility |
枚举 | 重载生效 | local0 |
— | |
| 设置启用 syslog 时使用的 facility。 | 现存 | ||||
syslog_ident |
字符串 | 重载生效 | postgres |
— | |
| 设置在 syslog 中标识 PostgreSQL 消息的程序名。 | 现存 | ||||
syslog_sequence_numbers |
布尔 | 重载生效 | on |
— | |
| 为 syslog 消息添加序号以避免重复消息被抑制。 | 现存 | ||||
syslog_split_messages |
布尔 | 重载生效 | on |
— | |
| 按行并按 1024 字节限制拆分发送给 syslog 的消息。 | 现存 | ||||