MySQL bin 二進(jìn)制日志是MySQL數(shù)據(jù)庫(kù)中的一個(gè)重要組成部分,用于記錄所有對(duì)數(shù)據(jù)庫(kù)的操作,從而對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份和恢復(fù)。
在MySQL服務(wù)器的binlog中,記錄的是所有數(shù)據(jù)散布的二進(jìn)制文件,這些文件可以用于進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)、數(shù)據(jù)備份以及性能分析等操作。Binlog可以記錄所有的MySQL操作,以實(shí)現(xiàn)事務(wù)的冪等性,從而最大程度地減少M(fèi)ySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)異常或錯(cuò)誤。
MySQL binlog日志有三種模式:statement-based,row-based and mixed-based。
Statement-based模式是根據(jù)SQL語(yǔ)句的類型進(jìn)行操作記錄,是一種較為簡(jiǎn)單的模式,只需要記錄執(zhí)行的SQL語(yǔ)句即可。
Row-based模式是根據(jù)操作的行記錄進(jìn)行記錄,一旦行的數(shù)據(jù)發(fā)生變化,就會(huì)記錄這個(gè)變化的行,是一種更加全面的記錄方式。
Mixed-based模式是以上兩種方式的結(jié)合,同時(shí)記錄SQL語(yǔ)句以及相關(guān)的行變化,是一種更加靈活的記錄方式。
MySQL binlog日志的格式如下: # at start logpos<>416 # at 211132 logpos< >442 # at 211186 logpos< >478 # at 215095 logpos< >506 # at 215121 logpos< >542 # at 215499 logpos< >578
總之,MySQL binlog日志是MySQL數(shù)據(jù)庫(kù)非常重要的組成部分,是進(jìn)行數(shù)據(jù)庫(kù)備份、恢復(fù)和分析的關(guān)鍵所在。