redo log
什么是redo log文件?如下:
-rw-r-----. 1 mysql mysql 50331648 2月 8 05:07 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 12月 2 2017 ib_logfile1
redo log又称重做日志文件,用于记录事物操作的变化,记录的是数据修改之后的值,不管事物是否是否提交都会记录下来。
在实例和介质失败时,重做日志文件就能派上用场,如数据库掉电,innodb会使用重做日志恢复到掉电前的时刻,以此来保证数据的完整性。
如上,默认情况下至少有两个redo文件,在磁盘上用in_logfile(0~N)命名。
redo log 写的方式是顺序写,循环写,round robin的方式,第一个文件写满之后,会顺序写第二个,顺序写第三个,当最后一个写满
之后会切换操作,并执行check point,触发赃页的刷新。
mysql数据库重启过程中,如果参数文件中的redo log值大小与当前redo log值不一致,会把现有redo log删除,
并按照参数文件中设置的大小,重新生成新的redo log文件,在磁盘中生成redo log文件之前,数据是先写在redo log buffer中的,
接着说说redo log buffer刷到磁盘的条件有哪些。
(1)通过innodb_flush_log_at_trx_commit参数来控制,该参数有3个值,分别为0,1,2.
*0的含义:redo log thread 每隔1秒会将redo log buffer中的数据写