重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: PG的全页写full_page_writes [打印本页]

作者: 郑全    时间: 2025-9-11 17:59
标题: PG的全页写full_page_writes
本帖最后由 郑全 于 2025-9-11 18:01 编辑

在 PostgreSQL 中,full_page_writes 是一个与数据可靠性相关的重要配置参数,主要用于防止数据库崩溃或崩溃时出现数据页损坏,默认值为 on(开启状态)。
核心作用
当 full_page_writes = on 时,PostgreSQL 在  检查点(checkpoint)之后首次修改数据页 时,会将整个数据页(而非仅修改的部分)写入 WAL(预写日志)。

这一机制的目的是应对 部分写入(partial write)问题:如果数据库在写入数据页的过程中突然崩溃(如断电),可能导致数据页只写入了一部分,形成不完整的 “损坏页”。而 WAL 中存储的完整页数据,可在数据库重启时通过恢复流程重建完整的数据页,避免数据损坏。

工作原理

优缺点分析
优点

缺点


适用场景

配置方式


修改 postgresql.conf 文件:

full_page_writes = on  # 默认值,推荐生产环境使用
# full_page_writes = off  # 仅在特殊场景下考虑关闭
  
修改后需重启 PostgreSQL 生效。

总结
   full_page_writes 是 PostgreSQL 防止数据页部分写入损坏的核心机制,默认开启以保障数据可靠性。除非使用具备断电保护的存储设备,否则不建议关闭,以免在系统崩溃时导致数据损坏。







欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2