mysql重做日志
来源:互联网 发布:男士补水面膜 知乎 编辑:程序博客网 时间:2024/06/07 01:21
转自 http://blog.163.com/ji_1006/blog/static/1061234120138262841483/
Mysql默认情况下会有两个文件:ib_logfile0和ib_logfile1,这两个文件就是重做日志文件,或者事务日志。
Mysql默认情况下会有两个文件:ib_logfile0和ib_logfile1,这两个文件就是重做日志文件,或者事务日志。
重做日志的目的:万一实例或者介质失败,重做日志文件就能派上用场。
每个InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认的ib_logfile0、ib_logfile1。InnoDB存储引擎先写重做日志文件1,当达到文件的最后时,会切换至重做日志文件2,当重做日志文件2也被写满时,会再被切换到重做日志文件1中。
影响重做日志的参数:
Innodb_log_file_size、innodb_log_files_in_group、innodb_log_group_home_dir影响着重做日志文件的属性。
重做日志与二进制日志的区别:
1)二进制日志会记录所有与mysql有关的日志记录,包括InnoDB等其他存储引擎的日志,而InnoDB存储引擎的重做日志只记录有关其本身的事务日志,
2)记录的内容不同,不管你将二进制日志文件记录的格式设为哪一种,其记录的都是关于一个事务的具体操作内容,而InnoDB存储引擎的重做日志文件记录的关于每个页的更改的物理情况;
3)写入的时间也不同,二进制日志文件是在事务提交前进行记录的,而在事务进行的过程中,不断有重做日志条目被写入重做日志文件中。
从日志缓冲写入磁盘上的重做日志文件的条件:
在主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件中,不论事务是否提交。另一个触发这个过程是由参数innodb_flush_log_at_trx_commit控制,表示在提交时,处理重做日志的方式。
参数innodb_flush_log_at_trx_commit可设的值有0、1、2,0代表当提交事务时,并不将事务的重做日志写入磁盘上的日志文件,而是等待主线程每秒的刷新,而1和2不同的地方在于:1是在commit时将重做日志缓冲同步写到磁盘;2是重做日志异步写到磁盘,即不能完全保证commit时肯定会写入重做日志文件,只是有这个动作。
值得注意的一点:因为重做日志有个capacity变量,该值代表了最后的检查点不能超过这个阀值。
0 0
- MySQL重做日志
- mysql重做日志
- MySQL 重做日志文件
- mysql源码阅读笔记- 重做日志
- 重做日志
- MySql的二进制日志,重做日志笔记,UndoLog
- MySql的二进制日志,重做日志笔记,UndoLog
- Mysql 重做日志及与二进制日志的区别
- MySQL系列:innodb源码分析之重做日志结构
- MySQL系列:innodb源码分析之重做日志结构
- MySQL数据库InnoDB存储引擎重做日志漫游
- 管理联机重做日志
- orace 重做日志
- 重做日志缓冲区优化
- 修改在线重做日志
- Oracle重做日志文件
- 重做日志文件实践
- redo重做日志管理
- ZOJ 2965 Accurately Say "CocaCola"!
- iOS开发UI -- UIAlertController(提示框)
- codeforces 487 A Fight the Monster 暴力枚举
- STL中的模板介绍
- 摄像机模型与标定—棋盘、亚像素角点和绘制棋盘角点
- mysql重做日志
- 引用别人的项目cannot change version
- 敏捷测试的方法和实践
- Two-Stream Convolutional Networks for Action Recognition in Video
- PHP 实现定时任务的几种方法
- DVB-AD 注册
- Linux 网络编程学习---线程
- 《深入理解计算机系统》读书笔记4---异常控制流
- android 动画效果总结