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