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

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

文档 / 配置参数 / 错误报告和日志

CONFIGURATION PARAMETER错误报告和日志 / 记录什么

log_checkpoints

记录每次检查点。

Logs each checkpoint.

布尔 重载生效 引入 9.0(基线) 现存至 20 devel 1 次默认值变更

类型
布尔bool
上下文
重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
默认值
on
引入版本
9.0(基线)
状态
现存

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

off 9.0 – 14 on 15 – 20

默认值一共换过 2 档,每段的宽度按它覆盖的大版本数伸展,深色的一段是当前查看的 PostgreSQL 18。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.8 错误报告和日志 本站手册 官方原文

本版译文与 PostgreSQL 10 完全一致,下面就是同一段文字。

导致检查点和重启点在服务器日志中记录。日志消息中包括一些统计信息, 包括写入的缓冲区数量和写入它们所花费的时间。此参数只能在 postgresql.conf文件或服务器命令行中设置。默认值为开启。

机制详解

log_checkpoints:记录每次检查点。检查点记录包含各阶段耗时及缓冲区或 WAL 工作量,暴露检查点节奏与写压力,而不只是一个标记。

log_checkpoints 属于 SIGHUP 上下文:重新加载配置即可在不重启的情况下激活服务器新值,后续读取它的操作使用刷新值。

它改变输出的诊断数据而非查询语义,但日志量、敏感内容、log_line_prefix、目标、收集器吞吐与保留策略共同决定运维成本和价值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    围绕明确的可观测性问题和实测日志容量预算调节 log_checkpoints;优先使用选择性阈值、抽样或角色级覆盖,而非无差别采集。

  • OLAP分析与批处理

    分析作业可以需要更丰富的 log_checkpoints 遥测,但应把长语句、大绑定值与集中完成造成的日志突发计入管线容量。

  • 小规格低配实例与开发机

    让 log_checkpoints 保持有用且有界:提高详细度或频率前,先验证磁盘、收集器、保留与脱敏能力。

常见问题

  • 编辑 log_checkpoints 后没有重新加载配置,也没有核对有效值与后续行为。
  • 增加日志内容却未预算收集器吞吐、存储、保留与下游查询成本。
  • 记录 SQL 文本、绑定值、身份或主机数据,却没有脱敏与访问控制策略。
  • 没有回滚计划及客户端或运维兼容测试,就全局修改 log_checkpoints。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 15 ← 14 默认值变更

    默认值 off on

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.0 off 重载生效 布尔
9.1 off 重载生效 布尔
9.2 off 重载生效 布尔
9.3 off 重载生效 布尔
9.4 off 重载生效 布尔
9.5 off 重载生效 布尔
9.6 off 重载生效 布尔
10 off 重载生效 布尔
11 off 重载生效 布尔
12 off 重载生效 布尔
13 off 重载生效 布尔
14 off 重载生效 布尔
15 on 重载生效 布尔
16 on 重载生效 布尔
17 on 重载生效 布尔
18 on 重载生效 布尔
19 on 重载生效 布尔
20 沿用 on 重载生效 布尔

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Reporting and Logging 错误报告和日志 25 个
记录什么 25
application_name 字符串 会话 空字符串
设置在统计信息和日志中报告的应用名称。 现存
debug_pretty_print 布尔 会话 on
对解析树和计划树的显示进行缩进美化。 现存
debug_print_parse 布尔 会话 off
记录每个查询的解析树。 现存
debug_print_plan 布尔 会话 off
记录每个查询的执行计划树。 现存
debug_print_raw_parse 布尔 会话 off
把每条查询的原始解析树写入日志。 现存
debug_print_rewritten 布尔 会话 off
记录每个查询重写后的解析树。 现存
log_autoanalyze_min_duration 整数 重载生效 10 min
设置记录 autovacuum ANALYZE 动作的最短执行时间。 现存
log_autovacuum_min_duration 整数 重载生效 10 min 152 次
设置记录 autovacuum 操作所需达到的最短执行时间。 现存
log_checkpoints 布尔 重载生效 on 151 次
记录每次检查点。 现存
log_connections 字符串 连接时(超级用户) 空字符串 182 次
记录连接建立与初始化过程中的指定阶段。 现存
log_disconnections 布尔 连接时(超级用户) off 9.51 次
记录会话结束及其持续时间。 现存
log_duration 布尔 会话(超级用户) off
记录每条已完成 SQL 语句的执行时长。 现存
log_error_verbosity 枚举 会话(超级用户) default
设置日志消息的详细程度。 现存
log_hostname 布尔 重载生效 off
在连接日志中记录主机名。 现存
log_line_prefix 字符串 重载生效 %m [%p] 101 次
控制每行日志前添加的信息。 现存
log_lock_failures 布尔 会话(超级用户) off
记录锁获取失败。 现存
log_lock_waits 布尔 会话(超级用户) off 191 次
记录持续时间较长的锁等待。 现存
log_parameter_max_length 整数 会话(超级用户) -1 B
设置记录语句时绑定参数值可写入日志的最大字节数。 现存
log_parameter_max_length_on_error 整数 会话 0 B
设置发生错误时绑定参数值可写入日志的最大字节数。 现存
log_recovery_conflict_waits 布尔 重载生效 off
记录备用库恢复冲突等待。 现存
log_replication_commands 布尔 会话(超级用户) off
记录每条复制命令。 现存
log_statement 枚举 会话(超级用户) none
设置要记录的 SQL 语句类型。 现存
log_statement_max_length 整数
如果大于零,通过 log_statement、log_min_duration_statement、log_min_duration_sample 或 log_transaction_sample_rate 记录的每条语句,其文本都会被截断为最多这么多字节。 现存
log_temp_files 整数 会话(超级用户) -1 kB
记录大于指定千字节数的临时文件使用。 现存
log_timezone 字符串 重载生效 GMT 9.22 次
设置日志消息使用的时区。 现存