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

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

文档 / 配置参数 / 预置选项

CONFIGURATION PARAMETER预置选项

data_checksums

显示该集群是否启用了数据校验和。

Shows whether data checksums are turned on for this cluster.

布尔 内部 引入 9.3 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
内部由编译或 initdb 决定,运行时不能修改
默认值
off
分类
预置选项
引入版本
9.3
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 5a7e75849c

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

off 9.3 – 20

默认值自 PostgreSQL 9.3 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.15 预置选项 本站手册 官方原文

报告对这个集簇是否启用了数据校验码。详见-k

机制详解

报告控制文件记录的集群级数据校验和状态。它在 SQL 中是 internal/只读值,不能通过 SET 修改。

校验和可由 initdb 选定,也可在服务器停止后通过 pg_checksums 修改。PostgreSQL 从存储读取页时验证校验和,写页时计算校验和。

校验和能发现撕裂或损坏页,但不能修复,也不能证明 WAL、备份、内存与所有存储层都健康。变更需要离线流程、全集群扫描容量和已验证备份。

调优建议

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

  • OLTP在线事务处理

    把该值视作完整性能力,而非性能旋钮。持久集群优先使用校验和并监控失败;既有集群应通过计划好的离线 pg_checksums 流程变更。

  • OLAP分析与批处理

    按真实数据集预算校验和 CPU 与启停所需的全集群扫描;离线转换前验证备份与副本兼容性。

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

    尽量在 initdb 时启用。既有小集群通常用 pg_checksums 比重建简单,但仍需停机与可恢复备份。

常见问题

  • 尝试通过 SET 或 ALTER SYSTEM 修改只读报告。
  • 服务器未干净停机时运行 pg_checksums。
  • 误以为忽略校验和错误就能修复损坏。
  • 误以为校验和本身能验证 WAL 记录、逻辑正确性或备份。
  • 启用后未监控校验和失败与存储健康。

演化历史

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

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 19 ← 18 属性变更

    类型 布尔 枚举 枚举值 (无) (无)

  3. PostgreSQL 9.3 ← 9.2 新增此参数

    PostgreSQL 9.3 起可用

逐版本快照

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

版本 默认值单位上下文类型最小值最大值枚举值
9.3 off 内部 布尔
9.4 off 内部 布尔
9.5 off 内部 布尔
9.6 off 内部 布尔
10 off 内部 布尔
11 off 内部 布尔
12 off 内部 布尔
13 off 内部 布尔
14 off 内部 布尔
15 off 内部 布尔
16 off 内部 布尔
17 off 内部 布尔
18 off 内部 布尔
19 off 内部 枚举
20 沿用 off 内部 枚举

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Preset Options 预置选项 24 个
block_size 整数 内部 8192
显示磁盘页块大小。 现存
data_checksums 布尔 内部 off 191 次
显示该集群是否启用了数据校验和。 现存
data_directory_mode 整数 内部 448
显示数据目录的权限模式。 现存
debug_assertions 布尔 内部 off 9.51 次
显示运行中的服务器是否启用了断言检查。 现存
debug_exec_backend 布尔 内部 off
显示运行中的服务器是否启用了 EXEC_BACKEND 构建选项。 现存
effective_wal_level 枚举 内部 replica
显示系统当前实际生效的 WAL 级别。 现存
huge_pages_status 枚举 内部 unknown
显示大页的使用状态。 现存
in_hot_standby 布尔 内部 off
显示当前是否处于 hot standby 状态。 现存
integer_datetimes 布尔 内部 on
显示日期时间是否采用整数表示。 现存
lc_collate 字符串 内部 C
显示排序规则所使用的区域设置。 于 16 移除
lc_ctype 字符串 内部 C
显示字符分类与大小写转换所使用的区域设置。 于 16 移除
max_function_args 整数 内部 100
显示函数参数数量上限。 现存
max_identifier_length 整数 内部 63
显示标识符长度上限。 现存
max_index_keys 整数 内部 32
显示索引键数量上限。 现存
num_os_semaphores 整数 内部 0
显示服务器所需的操作系统信号量数量。 现存
segment_size 整数 内部 1 GiB (131072 × 8kB)
显示每个磁盘文件所含的页数。 现存
server_encoding 字符串 内部 SQL_ASCII
显示服务器(数据库)字符集编码。 现存
server_version 字符串 内部 18.6 (Debian 18.6-1.pgdg13+2) 1916 次
显示服务器版本。 现存
server_version_num 整数 内部 180006 1916 次
以整数形式显示服务器版本。 现存
shared_memory_size 整数 内部 0 B
显示服务器主共享内存区的大小(向上取整到 MB)。 现存
shared_memory_size_in_huge_pages 整数 内部 -1
显示主共享内存区所需的大页数量。 现存
ssl_library 字符串 内部 OpenSSL
显示 SSL 库的名称。 现存
wal_block_size 整数 内部 8192
显示预写日志块大小。 现存
wal_segment_size 整数 内部 16 MiB 111 次
显示预写日志段文件大小。 现存