pg_checksums — 在 PostgreSQL 数据库集群中启用、禁用或检查数据校验和
pg_checksums [选项...] [[ -D | --pgdata ]datadir]
pg_checksums 检查、启用或禁用 PostgreSQL 集群中的数据校验和。在运行 pg_checksums 之前,必须干净地关闭服务器。在验证校验和时,如果不存在校验和错误,则退出状态为零;如果检测到至少一个校验和失败,则退出状态为非零。在启用或禁用校验和时,如果操作失败,则退出状态为非零。
在验证校验和时,将扫描集群中的每个文件。在启用校验和时,将就地重写每个校验和已更改的关系文件块。禁用校验和仅更新文件 pg_control。
可以使用以下命令行选项
-D 目录--pgdata=目录指定存储数据库集群的目录。
-c--check检查校验和。如果未指定其他内容,这是默认模式。
-d--disable禁用校验和。
-e--enable启用校验和。
-f filenode--filenode=filenode仅验证与 filenode filenode 相关的校验和。
-N--no-sync默认情况下,pg_checksums 将等待所有文件安全地写入磁盘。此选项导致 pg_checksums 在不等待的情况下返回,速度更快,但意味着随后的操作系统崩溃可能会导致更新的数据目录损坏。通常,此选项对于测试很有用,但不要在生产安装中使用。使用 --check 时,此选项无效。
-P--progress启用进度报告。启用此选项将在检查或启用校验和时提供进度报告。
-v--verbose启用详细输出。列出所有已检查的文件。
-V--version打印 pg_checksums 版本并退出。
-?--help显示有关 pg_checksums 命令行参数的帮助,然后退出。
PGDATA指定存储数据库集群的目录;可以使用 -D 选项覆盖。
PG_COLOR指定是否在诊断消息中使用颜色。可能的值为 always、auto 和 never。
在大集群中启用校验和可能会花费很长时间。在此操作期间,不得启动集群或其他写入数据目录的程序,否则可能会导致数据丢失。
在使用使用关系文件块直接副本的工具(例如 pg_rewind)进行复制设置时,如果操作未在所有节点上一致地执行,启用或禁用校验和会导致页面损坏,表现为不正确的校验和。因此,在复制设置中启用或禁用校验和时,建议在一致地切换所有集群之前停止所有集群。销毁所有备用数据库,在主数据库上执行操作,最后从头重新创建备用数据库也是安全的。
如果在启用或禁用校验和时中止或终止 pg_checksums,集群的数据校验和配置将保持不变,并且可以重新运行 pg_checksums 以执行相同的操作。
如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。