《Mysql Binlog概述》要點(diǎn):
本文介紹了Mysql Binlog概述,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
Binlog是一系列日志文件,他們包括的內(nèi)容是Mysql數(shù)據(jù)內(nèi)容的改變.如果想開(kāi)啟binlog功能,需要在啟動(dòng)時(shí)帶上--log-bin參數(shù).
binlog是從Mysql3.23.14版本開(kāi)始的.它包括所有更新數(shù)據(jù)的sql語(yǔ)句.它還包括可能更新數(shù)據(jù)的語(yǔ)句(比如,刪除不存在的數(shù)據(jù)行的語(yǔ)句),除非日志的記錄是以基于行的.sql語(yǔ)句是以描述修改的事件形式存儲(chǔ)的.binlog也包括每個(gè)語(yǔ)句的執(zhí)行時(shí)間.
binlog還包括其他的一些源數(shù)據(jù),比如:
語(yǔ)句執(zhí)行時(shí),服務(wù)器的狀態(tài)信息,以便用于正確的重新勝利執(zhí)行語(yǔ)句
差錯(cuò)碼
為了維持binlog文件的連續(xù)性所需要的元數(shù)據(jù)(好比,rotate事件)
binlog文件是服務(wù)器在執(zhí)行sql語(yǔ)句過(guò)程中整體狀態(tài)的情況跟蹤.它包括的事件描述了狀態(tài)的變化.更精確的是,binlog事件描述的事件可以被用來(lái)重現(xiàn)服務(wù)器當(dāng)時(shí)的狀態(tài)改變.
binlog文件有兩個(gè)重要的目的:
為了主從復(fù)制,binlog文件是master服務(wù)器記錄的,會(huì)被發(fā)送給slave服務(wù)器.很多binlog的格式細(xì)節(jié)和處理是用于這個(gè)目的的.master服務(wù)器發(fā)送binlog文件中的事件給slave服務(wù)器,然后slave服務(wù)器執(zhí)行這些事件,最終達(dá)到的目標(biāo)就是保證slave服務(wù)器的數(shù)據(jù)變化與master一致.slave服務(wù)器在執(zhí)行這些事件之前,會(huì)把這些事件存儲(chǔ)在當(dāng)?shù)氐膔elay log中.relay log的格式與binlog一樣.
某些數(shù)據(jù)恢復(fù)操作必要使用binlog.在備份文件恢復(fù)后,binlog中的事件會(huì)重新執(zhí)行.這些事件會(huì)讓數(shù)據(jù)庫(kù)的數(shù)據(jù)回到備份時(shí)間點(diǎn).
目前有兩種類型的binlog:
基于語(yǔ)句的:包括sql語(yǔ)句的事件(insert、update、delete)
基于行的:描述每一行的數(shù)據(jù)變化的變亂
混合的日志默認(rèn)使用的是基于語(yǔ)句的記錄方式,在需要時(shí)會(huì)切換到基于行的記錄方式.基于行的記錄方式從Mysql 5.1版本開(kāi)始支持.
mysqlbinlog對(duì)象可以把binlog或者relay log日志以可讀的方式打印出來(lái).
歡迎參與《Mysql Binlog概述》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7886.html