pg_checksums — 在 PostgreSQL 数据库集群中启用、禁用或检查数据校验和
pg_checksums
[选项
...] [[ -D
| --pgdata
]数据目录
]
pg_checksums 检查、启用或禁用 PostgreSQL 集群中的数据校验和。在运行 pg_checksums 之前,必须干净地关闭服务器。验证校验和时,如果没有校验和错误,则退出状态为零;如果检测到至少一个校验和失败,则退出状态为非零。启用或禁用校验和时,如果操作失败,则退出状态为非零。
验证校验和时,将扫描集群中的每个文件。启用校验和时,每个具有更改的校验和的关系文件块都将在原地重写。禁用校验和只会更新文件 pg_control
。
以下命令行选项可用
-D 目录
--pgdata=目录
指定数据库集群存储的目录。
-c
--check
检查校验和。如果没有指定其他内容,则这是默认模式。
-d
--disable
禁用校验和。
-e
--enable
启用校验和。
-f 文件节点
--filenode=文件节点
仅验证具有文件节点 文件节点
的关系中的校验和。
-N
--no-sync
默认情况下,pg_checksums
将等待所有文件安全地写入磁盘。此选项会导致 pg_checksums
在不等待的情况下返回,这会更快,但这意味着后续的操作系统崩溃可能会使更新后的数据目录损坏。通常,此选项对于测试很有用,但不应在生产安装中使用。使用 --check
时,此选项不起作用。
-P
--progress
启用进度报告。启用此选项将在检查或启用校验和时提供进度报告。
--sync-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 以执行相同的操作。
如果您在文档中看到任何不正确的内容,与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。