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

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

百科 / 命令行工具 / 服务端程序

pg_checksums

pg_checksums — 在 PostgreSQL 数据库集簇中启用、禁用或检查数据校验和

当前查看 PostgreSQL 18.6。

说明

pg_checksums — 在 PostgreSQL 数据库集簇中启用、禁用或检查数据校验和

手册中的可执行程序
pg_checksums
程序版本
18.6
参考清单
服务端程序
选项定义组
11

用法

pg_checksums [ option ...] [[ -D | --pgdata ] datadir ]

手册中的选项

选项与参数说明
-D directory --pgdata= directory指定存储数据库集簇的目录。
-c --check检查校验和。如果没有指定其他模式,这是默认模式。
-d --disable禁用校验和。
-e --enable启用校验和。
-f filenode --filenode= filenode仅验证文件节点为 filenode 的关系中的校验和。
-N --no-sync默认情况下, pg_checksums 会等待所有文件被安全写入磁盘。该选项会使 pg_checksums 直接返回而不等待,这样速度更快,但也意味着如果随后操作系统崩溃,更新后的数据目录可能会损坏。通常,此选项适合测试,但不应在生产环境中使用。使用 --check 时,此选项不起作用。
-P --progress启用进度报告。启用此选项后,在检查或启用校验和时会输出进度报告。
--sync-method= method设为 fsync (默认值)时, pg_checksums 会递归打开并同步数据目录中的所有文件。查找文件时会跟随 WAL 目录和每个已配置表空间的符号链接。
-v --verbose启用详细输出,列出所有被检查的文件。
-V --version打印 pg_checksums 版本并退出。
-? --help显示关于 pg_checksums 命令行参数的帮助并退出。

环境变量

变量含义
PGDATA指定存储数据库集簇的目录;可以用 -D 选项覆盖。
PG_COLOR指定诊断消息是否使用颜色。可选值为 always 、 auto 和 never 。

手册定义

pg_checksums

pg_checksums — 在PostgreSQL数据库集簇中启用、禁用或检查数据校验和

大纲

pg_checksums [option...] [[ -D | --pgdata ]datadir]

说明

pg_checksums用于在PostgreSQL数据库集簇中检查、启用或禁用数据校验和。运行pg_checksums之前,必须先将服务器干净关闭。验证校验和时,如果没有校验和错误,则退出状态为零;如果检测到至少一个校验和失败,则退出状态为非零。启用或禁用校验和时,如果操作失败,则退出状态为非零。

在验证校验和时,集簇中的每个文件都会被扫描。启用校验和时,校验和发生变化的每个关系文件块都会被原地重写。禁用校验和只会更新文件pg_control。

选项

提供以下命令行选项:

-D directory
--pgdata=directory

指定存储数据库集簇的目录。

-c
--check

检查校验和。如果没有指定其他模式,这是默认模式。

-d
--disable

禁用校验和。

-e
--enable

启用校验和。

-f filenode
--filenode=filenode

仅验证文件节点为filenode的关系中的校验和。

-N
--no-sync

默认情况下,pg_checksums会等待所有文件被安全写入磁盘。该选项会使pg_checksums直接返回而不等待,这样速度更快,但也意味着如果随后操作系统崩溃,更新后的数据目录可能会损坏。通常,此选项适合测试,但不应在生产环境中使用。使用--check时,此选项不起作用。

-P
--progress

启用进度报告。启用此选项后,在检查或启用校验和时会输出进度报告。

--sync-method=method

设为fsync(默认值)时,pg_checksums会递归打开并同步数据目录中的所有文件。查找文件时会跟随 WAL 目录和每个已配置表空间的符号链接。

在 Linux 上,也可以改用syncfs,请求操作系统同步包含数据目录、WAL 文件以及每个表空间的整个文件系统。使用syncfs时需注意的事项见recovery_init_sync_method。

使用--no-sync时,此选项不起作用。

-v
--verbose

启用详细输出,列出所有被检查的文件。

-V
--version

打印pg_checksums版本并退出。

-?
--help

显示关于pg_checksums命令行参数的帮助并退出。

环境

PGDATA

指定存储数据库集簇的目录;可以用-D选项覆盖。

PG_COLOR

指定诊断消息是否使用颜色。可选值为 always、auto和 never。

注解

在大型集簇中启用校验和可能需要很长时间。在此操作期间,不得启动该集簇,也不得启动任何会向数据目录写入内容的其他程序,否则可能发生数据丢失。

在复制环境中,如果配合会直接复制关系文件块的工具(例如pg_rewind)使用,而又没有在所有节点上一致地执行启用或禁用校验和的操作,就可能造成表现为校验和不正确的页面损坏。因此,在复制环境中切换校验和时,建议先停止所有集簇,再一致地切换所有节点。另一种安全做法是销毁所有备库,在主库上执行该操作,最后从头重建各备库。

如果在启用或禁用校验和期间pg_checksums被中止或杀掉,那么集簇的数据校验和配置将保持不变,并且可以重新运行pg_checksums以执行同一操作。

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回命令行工具 · 收录范围为 PostgreSQL 12 至 20;最早采样版本不一定是实际引入版本。