校验和可以添加到数据页以帮助检测由存储系统错误引起的损坏。它们只能在initdb时以及针对整个数据库集群进行设置;之后无法将集群或单个数据库转换为使用校验和。
校验和是在PostgreSQL 9.3中引入的。
确定是否启用了校验和
要确定PostgreSQL实例上是否启用了校验和,请查询预设的GUC data_checksums
。
从PostgreSQL 9.6开始,例如执行“SELECT data_page_checksum_version FROM pg_control_init()
”。
对于所有版本,此值由pg_controldata报告为“数据页校验和版本
”。“0
”表示未启用。
验证校验和
从PostgreSQL 12开始,实用程序pg_checksums
可以启用所有数据页校验和的验证。
在PostgreSQL 11中,实用程序pg_verify_checksums
可以用于相同目的。
更改历史
- PostgreSQL 9.3
- 添加(初始提交:96ef3b8f)
参考文献
- PostgreSQL文档: initdb:校验和选项