默认情况下,数据页受到校验和的保护,但可以选择为集群禁用此功能。 启用时,每个数据页包括一个校验和,该校验和在页面写入时更新, 并在每次读取页面时进行验证。只有数据页受到校验和的保护; 内部数据结构和临时文件则不受保护。
在使用 initdb 初始化集群时, 可以禁用校验和。 也可以在稍后的时间作为离线操作启用或禁用它们。 数据校验和在整个集群级别启用或禁用,不能单独为数据库或表指定。
可以查看只读配置变量 data_checksums 的值来验证集群中校验和的当前状态,
通过执行 SHOW data_checksums 命令。
当试图从页面损坏中恢复时,可能需要旁路校验和保护。 要做到这一点,临时设置配置参数 ignore_checksum_failure。
pg_checksums应用可用于启用或禁用数据校验和,以及验证校验和,在离线集群里。