PostgreSQL DBA(20) - WAL full-page-write浅析
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,full-page-write在T1,数据库成功执行checkpoint;在T2,执行DML语句,这时候相关的数据会写入到WAL中(此处忽略了WAL buffer);在T3,提交该事务;在T4,bgw
千家信息网最后更新 2025年01月21日PostgreSQL DBA(20) - WAL 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安全错误
数据库的锁怎样保障安全
关于网络安全的成语有哪些
傻瓜进销存软件使用的数据库
做服务器安全问题
潮汕苹果软件开发多少钱
数据库系统及应用第三版魏祖宽
上汽大众南京分公司软件开发
私有协议文件管理服务器
服务器ssd容量小数量多好
win10如何搭建dns服务器
三级网络技术简历介绍
软件开发售后方案怎么写
板娘小薇明日之后新服务器
中国的法律数据库
软件开发面向对象和面向过程
http500服务器维护要多久
游戏服务器运维一个月多少钱
加强网络安全管理的建议案
微博服务器异常时内容照常浏览
华为免费培训软件开发
台州机场网络安全
10000转服务器硬盘
湖南农产品供应链服务软件开发商
政府软件开发的服务怎么样
在创建数据库表结构时为该表
浙江商城软件开发定制
工会网络安全宣传制度
珠海国企软件开发招聘
属于中国的数据库
当老师好还是学计算机网络技术好
csmar数据库的数据怎么下载