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

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 16 → 17: 属性变化。

以下差异保留原始字段名与英文源描述。

--- PostgreSQL 16
+++ PostgreSQL 17
@@ -67,6 +67,13 @@
       "signature": "-P --progress"
     },
     {
+      "description": "When set to fsync , which is the default, pg_checksums will recursively open and synchronize all files in the data directory. The search for files will follow symbolic links for the WAL directory and each configured tablespace. On Linux, syncfs may be used instead to ask the operating system to synchronize the whole file systems that contain the data directory, the WAL files, and each tablespace. See recovery_init_sync_method for information about the caveats to be aware of when using syncfs . This option has no effect when --no-sync is used.",
+      "names": [
+        "--sync-method= method"
+      ],
+      "signature": "--sync-method= method"
+    },
+    {
       "description": "Enable verbose output. Lists all checked files.",
       "names": [
         "-v",

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

相关条目

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