上次,我們僅僅把binlog做了一個(gè)概述,并沒(méi)有去深入探索(1)binlog file究竟是怎么構(gòu)成的?(2)binlog file的單元binlog events是怎么構(gòu)成的?(3)我們能不能偽造出一個(gè)mysqlbinlog識(shí)別的binlog file? 當(dāng)然,第三個(gè)問(wèn)題看起來(lái)很cool,蠻有挑戰(zhàn)性的。

這次我們討論的是第4版本的binlogfile, 一般5.0.x以上的mysql使用該版本的binlogfile。

首先回答第一個(gè)問(wèn)題

一、binlog file的構(gòu)成

(1)binlog file的大致構(gòu)成

這個(gè)問(wèn)題其實(shí)之前也回答過(guò),但是很不深入。這次,我會(huì)深度探索它,首先我們扒一扒官方的說(shuō)法;

http://dev.mysql.com/doc/internals/en/binlog-file.html

這塊就說(shuō)了一句話:binlog file是由binlog file header和binlog events構(gòu)成的,至于binlog file header其實(shí)就是0xfe62696e。換言之,binlog file先寫(xiě)了個(gè)0xfe62696e,然后后面跟著許多binlog event 。官方的文檔還是很給力的,我們可以打開(kāi)任意一個(gè)binlog file,以16進(jìn)制形式打開(kāi),開(kāi)頭就是0xfe62696e。

網(wǎng)友評(píng)論