(转)InnoDB之Dirty Page、Redo log
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,作者:苏普 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】地址:http://rdc.taobao.com/blog/dba/html/317_innodb-dirty-page-
千家信息网最后更新 2025年11月07日(转)InnoDB之Dirty Page、Redo log
[@more@]
作者:苏普 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/317_innodb-dirty-page-redo-log.html
在InnoDB中,buffer pool里面的dirty page一方面可以加快数据处理速度,同时也会造成数据的不一致(RAM vs DISK)。本文介绍了dirty page是如何产生,以及InnoDB如何利用redo log如何消除dirty page产生的数据不一致。
[@more@]
- 当事务(Transaction)需要修改某条记录(row)时,InnoDB需要将该数据所在的page从 disk读到buffer pool中,事务提交后,InnoDB修改page中的记录(row)。这时buffer pool中的page就已经和disk中的不一样了,我们称buffer pool中的page为dirty page。Dirty page等待flush到disk上。
- dirty page既然是在Buffer pool中,那么如果系统突然断电Dirty page中的数据修改是否会丢失?这个担心是很有必要的,例如如果一个用户完成一个操作(数据库完成了一个事务,page已经在buffer pool中修改,但dirty page尚未flush),这时系统断电,buffer pool数据全部消失。那么,这个用户完成的操作(导致的数据库修改)是否会丢失呢?答案是不会 (innodb_flush_log_at_trx_commit=1)。这就是redo log要做的事情,在disk上记录更新。
- redo log在每次事务commit的时候,就立刻将事务更改操作记录到redo log。所以即使buffer pool中的dirty page在断电时丢失,InnoDB在启动时,仍然会根据redo log中的记录完成数据恢复。
- redo log的另一个作用是,通过延迟dirty page的flush最小化磁盘的random writes。(redo log会合并一段时间内TRX对某个page的修改)
- 正常情况下,dirty page什么时候flush到disk上?
1).redo log是一个环(ring)结构,当redo空间占满时,将会将部分dirty page flush到disk上,然后释放部分redo log。这种情况可以通过Innodb_log_wait(SHOW GLOBAL STATUS)观察,情况发生该计数器会自增一次。
2). 当需要在Buffer pool分配一个page,但是已经满了,并且所有的page都是dirty的(否则可以释放不dirty的page),通常是不会发生的。这时候必须 flush dirty pages to disk。这种情况将会记录到Innodb_buffer_pool_wait_free中。一般地,可以可以通过启动参数 innodb_max_dirty_pages_pct控制这种情况,当buffer pool中的dirty page到达这个比例的时候,将会强制设定一个checkpoint,并把dirty page flush到disk中。
3).检测到系统空闲的时候,会flush,每次64 pages。 - 涉及的InnoDB配置参数:innodb_flush_log_at_trx_commit、innodb_max_dirty_pages_pct;状态参数:Innodb_log_wait、Innodb_buffer_pool_wait_free。
参考文献
- http://mysqldump.azundris.com/archives/78-Configuring-InnoDB-An-InnoDB-tutorial.html
- http://dev.mysql.com/doc/refman/5.0/en/innodb.html
数据
事务
情况
时候
参数
系统
一致
作者
可以通过
数据库
用户
部分
原始
最小
必要
一方
事情
作用
出处
参考文献
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
随州市网络安全应急指挥中心
小米来电显示数据库
全国网络安全会议发言稿
argmap建数据库
校园网络安全隐患及其对策
如何做好网络安全保护
你怎么遵守国家网络安全法
第三方征信数据库
网络安全与移动互联网那个好
常州艺阳阁网络技术有限公司
贵州玉珏网络技术服务有限公司
设备网络安全调试
市网络安全条例
全市网络安全工作培训会
网络安全法律知识讲座观后感
数据库安全分为两类
为什么服务器维护时不能登录
摩恩电气软件开发
assces数据库采集
四大名著翻译软件开发
黑月服务器没了
网络安全手抄文字内容
上海悦奕网络技术有限公司
网络安全工作的目标包括什么
geem2数据库修改
互联网科技最新估价
甘肃电信服务器地址云空间
德阳软件开发定制
使用数据库有什么优点是什么
服务器多屏显示器