Postgresql 中文操作指南

pg_checksums

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

Synopsis

pg_checksums [ option …​] datadir ]

Description

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

在验证校验和时,将扫描集簇中的每个文件。在启用校验和时,将原位重写每个改变的校验和的关系文件块。禁用校验和只能更新文件 pg_control

Options

以下命令行选项可用:

  • -D _directory—​pgdata=_directory

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

  • -c_—​check_

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

  • -d_—​disable_

    • Disables checksums.

  • -e_—​enable_

    • Enables checksums.

  • -f _filenode—​filenode=_filenode

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

  • -N_—​no-sync_

    • 默认情况下, pg_checksums 将等待所有文件安全地写入磁盘。此选项导致 pg_checksums 不等待即可返回,这样速度更快,但意味着后续的操作系统崩溃可能会使更新的数据目录损坏。通常,此选项适用于测试,但不应用于生产安装。使用 —​check 时此选项无效。

  • -P_—​progress_

    • 启用进度报告。启用此项将在检查或启用校验和时提供进度报告。

  • -v_—​verbose_

    • 启用详细输出。列出所有已检查的文件。

  • -V_—​version_

    • 打印 pg_checksums 版本并退出。

  • -?_—​help_

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

Environment

  • PGDATA

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

  • PG_COLOR

    • 指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

Notes

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

当使用直接复制关系文件块的工具(例如 pg_rewind )的复制设置时,如果操作未在所有节点上始终如一地完成,则启用或禁用校验和会导致页面损坏(以不正确的校验和形式出现)。因此,在复制设置中启用或禁用校验和时,建议先停止所有集群,然后再一致地切换所有集群。摧毁所有备用,对主集群执行操作,并最终从头开始重建备用也是安全的。

如果在启用或禁用校验和时中止或终止 pg_checksums,则集群数据校验和配置保持不变,并且可以重新运行 pg_checksums 以执行相同操作。