(转)InnoDB之Dirty Page、Redo log
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,作者:苏普 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】地址:http://rdc.taobao.com/blog/dba/html/317_innodb-dirty-page-
千家信息网最后更新 2026年11月01日(转)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安全错误
数据库的锁怎样保障安全
湖南永感互联网科技有限公司
国智互联网科技
新华互联网科技学院
期待互联网科技
北京互联网络科技有限公司
壹账通互联网科技
睿民互联网科技
上海卓越科技 互联网
上海亿帐通互联网科技
科技大学互联网专业好不好
恒生科技互联网指数分析
深圳国际航运科技和互联网
全球顶尖互联网科技公司
互联网媒体平台算高科技产业
河南住房之家互联网科技
四川慕妮娅互联网科技有限公司
卓翼科技产业互联网合作
版纳互联网科技选哪家
互联网时代高科技布局
数字科技和互联网金融哪个好
什么是科技互联网
西安纸贵互联网科技有限公司
互联网最新的科技
礼当家互联网科技
深圳互联网科技怎么样
开启互联网科技时代小说
福州新华互联网科技学校 知乎
互联网科技与管理
互联网金融科技展
保山互联网科技靠谱吗