Skip to content

30.2. 数据校验和#

30.2.1. 离线启用校验和

默认情况下,数据页面不受校验和保护,但可以为集群选择性启用此功能。启用后,每个数据页面都包含一个校验和,该校验和在页面写入时更新,并在每次读取页面时进行验证。只有数据页面受校验和保护;内部数据结构和临时文件不受保护。

通常在使用initdb初始化集群时启用校验和。它们还可以在以后作为离线操作启用或禁用。数据校验和在整个集群级别启用或禁用,不能针对数据库或表单独指定。

可以通过查看只读配置变量data_checksums的值来验证集群中校验和的当前状态,方法是发出命令SHOW data_checksums

在尝试从页面损坏中恢复时,可能需要绕过校验和保护。为此,请暂时设置配置参数ignore_checksum_failure

30.2.1. 离线启用校验和#

应用程序pg_checksums可用于在离线集群上启用或禁用数据校验和,以及验证校验和。