💡
原文英文,约1900词,阅读约需7分钟。
📝
内容提要
PostgreSQL 18默认启用数据校验和,以便早期检测数据损坏。通过计算页面内容和地址,校验和能发现内存和存储中的错误,从而提高数据安全性,尽管会带来少量性能开销。
🎯
关键要点
- PostgreSQL 18默认启用数据校验和,以便早期检测数据损坏。
- 数据损坏可能在PostgreSQL数据库中静默存在,直到读取损坏数据时才会被发现。
- 数据校验和通过计算页面内容和地址来发现内存和存储中的错误,提高数据安全性。
- PostgreSQL表或索引以8 KB页面存储,校验和存储在页面头部。
- 在每次读取时,PostgreSQL会重新计算校验和并与存储值进行比较。
- PostgreSQL 18的发布说明中明确列出了启用数据校验和的变化。
- DBA在升级时必须匹配校验和设置,确保源和目标集群的校验和状态一致。
- pg_stat_database中有两个列用于监控校验和失败的统计信息。
- pg_checksums工具用于检查、启用或禁用校验和,必须在服务器关闭时运行。
- 在升级前,用户可以选择在新集群上禁用校验和或在旧集群上启用校验和。
- 当检测到校验和不匹配时,PostgreSQL会发出警告并引发错误。
- ignore_checksum_failure和zero_damaged_pages是两个开发者选项,用于数据恢复。
- autovacuum进程会强制禁用zero_damaged_pages,以防止自动零化数据。
- 启用数据校验和可以更早地检测到数据损坏,减少潜在问题。
- PostgreSQL 18的决定反映了性能影响微小而好处巨大的经验。
❓
延伸问答
PostgreSQL 18中数据校验和的默认设置是什么?
PostgreSQL 18默认启用数据校验和,以便早期检测数据损坏。
数据校验和如何提高PostgreSQL的安全性?
数据校验和通过计算页面内容和地址来发现内存和存储中的错误,从而提高数据安全性。
如何在PostgreSQL中监控校验和失败?
可以通过pg_stat_database中的checksum_failures和checksum_last_failure列来监控校验和失败的统计信息。
在升级PostgreSQL集群时需要注意什么?
在升级时,源和目标集群的校验和设置必须一致,确保两者都启用或禁用校验和。
pg_checksums工具的主要功能是什么?
pg_checksums工具用于检查、启用或禁用校验和,必须在服务器关闭时运行。
PostgreSQL如何处理校验和不匹配的情况?
当检测到校验和不匹配时,PostgreSQL会发出警告并引发错误,DBA可以使用ignore_checksum_failure和zero_damaged_pages选项进行数据恢复。
🏷️
标签
➡️