PostgreSQL DBA(20) - WAL full-page-write浅析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,full-page-write在T1,数据库成功执行checkpoint;在T2,执行DML语句,这时候相关的数据会写入到WAL中(此处忽略了WAL buffer);在T3,提交该事务;在T4,bgw
千家信息网最后更新 2026年11月01日PostgreSQL DBA(20) - WAL full-page-write浅析
full-page-write
full-page-write在T1,数据库成功执行checkpoint;
在T2,执行DML语句,这时候相关的数据会写入到WAL中(此处忽略了WAL buffer);
在T3,提交该事务;
在T4,bgwriter把dirty pages写入到Data file中,但在写入过程中机器出现故障导致Crash(如掉电等),出现了部分写的情况。
为了应对这种情况,PG在T2写入WAL的时候,会把出现变化的page整页写入到WAL中,而不仅仅是tuple data。在数据库重启执行恢复的时候,在Redo point开始回放WAL时,如发现XLOG Record是FPI(full-page-image),则整页替换,通过这种机制解决了部分写的问题。
二、full-page-write的代价
当然这种机制不是免费的,其主要的负面影响是写放大。
由于整页写,不可避免的出现冗余数据;考虑这么一种情况:如果数据库很繁忙,而且数据的热点分散在不同的table上,同时checkpoint执行间隔较短,那非常多的page就会通过full-page-write写入的WAL中,导致日志空间快速膨胀。在极端情况下,page"满载"(基本没有空闲空间)的情况下更新其中一条记录都会导致整页写入WAL。
关于这部分的机制和解决方案,参考资料中的《如何遏制PostgreSQL WAL的疯狂增长》有详细论述。
三、参考资料
Write Ahead Logging - WAL
如何遏制PostgreSQL WAL的疯狂增长
PostgreSQL 可靠性分析 - 关于redo block原子写
数据
情况
数据库
机制
疯狂
参考资料
时候
空间
资料
部分
参考
增长
不同
繁忙
成功
不可避免
不仅仅
事务
代价
冗余
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网
互联网科技园
伟宏互联网科技
互联网下的科技发展
重庆互联网络科技
北京互联网科技
卓越科技(互联网 )
互联网科技缩写
佩信高科技互联网
农村开互联网科技讲堂
北京华百购互联网科技有限公司
南山科技园互联网公司有哪些
彤创互联网科技有限公司
崇明区互联网教育科技售后服务
互联网科技公司营业执照怎么办理
上海互联网科技公司ppt
互联网科技包装股份有限公司上市
郑州欣桑互联网科技有限公司
福仕德教育科技互联网
北京天晋互联网科技有限公司
深圳市人人互联网科技有限公司
国智互联网科技
以后互联网后是啥科技
黑科技闪耀互联网之光
想开互联网科技公司怎么样
如何创新互联网科技
上海创道互联网络科技有限公司
互联网安防科技感
全球科技与互联网公司市值变化
互联网的科技体现在哪里