PostgreSQL DBA(20) - WAL full-page-write浅析
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,full-page-write在T1,数据库成功执行checkpoint;在T2,执行DML语句,这时候相关的数据会写入到WAL中(此处忽略了WAL buffer);在T3,提交该事务;在T4,bgw
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
Vb调用服务器上的文件
涪陵网络安全大队徐队长
政务网络安全管控体系
如何搭建oracal数据库
服务器cpu用在哪些方面
网络安全预算一般包含
js操作sql数据库
初始数据库mysql
盐城创新软件开发价格咨询
数据库更改密码复杂性要求
软件开发50万年薪
远程许可证管理服务器怎么设置
服务器怎么设置管理口Ip
管理员打印服务器设置
数据库优化器
中国前十的网络安全公司
旧电脑怎么做成家庭服务器
金融安全软件开发
财务软件开发好找工作吗
yber网络安全吗
信息化软件开发应用
软件开发工作何时复工
数据库保险项目
服务器2022系统
3节点服务器
涉密网络安全管理规定
阿里云 重启服务器
网络安全电视采访稿
linux服务器网卡配置
通信网络技术包括哪些