Mysql 重做日志及与二进制日志的区别
Mysql 重做日志及與二進(jìn)制日志的區(qū)別(轉(zhuǎn)http://blog.uouo123.com/post/623.html)
Mysql默認(rèn)情況下會(huì)有兩個(gè)文件:ib_logfile0和ib_logfile1,這兩個(gè)文件就是重做日志文件,或者事務(wù)日志。
重做日志的目的:萬一實(shí)例或者介質(zhì)失敗,重做日志文件就能派上用場(chǎng)。
每個(gè)InnoDB存儲(chǔ)引擎至少有一個(gè)重做日志文件組,每個(gè)文件組下至少有2個(gè)重做日志文件,如默認(rèn)的ib_logfile0、ib_logfile1。InnoDB存儲(chǔ)引擎先寫重做日志文件1,當(dāng)達(dá)到文件的最后時(shí),會(huì)切換至重做日志文件2,當(dāng)重做日志文件2也被寫滿時(shí),會(huì)再被切換到重做日志文件1中。
影響重做日志的參數(shù):
Innodb_log_file_size、innodb_log_files_in_group、innodb_log_group_home_dir影響著重做日志文件的屬性。
?
重做日志與二進(jìn)制日志的區(qū)別:
1)二進(jìn)制日志會(huì)記錄所有與mysql有關(guān)的日志記錄,包括InnoDB等其他存儲(chǔ)引擎的日志,而InnoDB存儲(chǔ)引擎的重做日志只記錄有關(guān)其本身的事務(wù)日志,
2)記錄的內(nèi)容不容,不管你將二進(jìn)制日志文件記錄的格式設(shè)為哪一種,其記錄的都是關(guān)于一個(gè)事務(wù)的具體操作內(nèi)容,而InnoDB存儲(chǔ)引擎的重做日志文件記錄的關(guān)于每個(gè)頁的更改的物理情況;
3)寫入的時(shí)間也不同,二進(jìn)制日志文件是在事務(wù)提交前進(jìn)行記錄的,而在事務(wù)進(jìn)行的過程中,不斷有重做日志條目被寫入重做日志文件中。
從日志緩沖寫入磁盤上的重做日志文件的條件:
在主線程中每秒會(huì)將重做日志緩沖寫入磁盤的重做日志文件中,不論事務(wù)是否提交。另一個(gè)觸發(fā)這個(gè)過程是由參數(shù)innodb_flush_log_at_trx_commit控制,表示在提交時(shí),處理重做日志的方式。
參數(shù)innodb_flush_log_at_trx_commit可設(shè)的值有0、1、2,0代表當(dāng)提交事務(wù)時(shí),并不將事務(wù)的重做日志寫入磁盤上的日志文件,而是等待主線程每秒的刷新,而1和2不同的地方在于:1是在commit時(shí)將重做日志緩沖同步寫到磁盤;2是重做日志異步寫到磁盤,即不能完全保證commit時(shí)肯定會(huì)寫入重做日志文件,只是有這個(gè)動(dòng)作。
?值得注意的一點(diǎn):因?yàn)橹刈鋈罩居袀€(gè)capacity變量,該值代表了最后的檢查點(diǎn)不能超過這個(gè)閥值。
?
轉(zhuǎn)載于:https://www.cnblogs.com/wangtengfei/p/4552381.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Mysql 重做日志及与二进制日志的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TP-Link TL-WTR9200 无
- 下一篇: ubuntu14.04 LTS 源码编译