校验和与整页图像之间有什么关系?

时间:2018-11-26 02:21:15

标签: postgresql postgresql-9.3 transaction-log

最近,我了解了一些有关PostgreSQL数据校验和的知识,并对校验和与整页图像之间的关系感到困惑。

如以下评论所述:

  

如果我们需要保护提示位更新免受写入破坏,请WAL-log a   页面的完整页面图像。此全页图片仅是必需的   如果提示位更新是自   最后一个检查点。

     

我们不在此处检查full_page_writes,因为其中包含该逻辑   当我们调用XLogInsert()时,因为值会动态更改。

如我所知,如果我们需要保护页面免受包括提示位更新的写入损坏,则应启用full_page_writes。即使full_page_writes已关闭,即使校验和仍能够检测到残缺的页面,为什么还要在WAL上写完整的页面图像?

1 个答案:

答案 0 :(得分:1)

如果页面撕裂,校验和将产生错误,但不会纠正该错误。它只告诉您,是时候从备份还原了。

如果您想完全避免该问题,请将full_page_writes设置为on