本節介紹幾種常用的binlog event。
FORMAT_DESCRIPTION_EVENT: 該事件是binlog文件的第一個事件。描述了版本信息、各種類型event的post_header的長度、checksum算法。對應的格式如下:
內容 offset:length
// binlog_version 0:2
// server_version 2:50
// create_time 52:4
// event_type_header_len 16:1 : event header部分的長度,V4版本固定是19
// event post header len 每種事件長度佔1個字節,事件總共有ENUM_END_EVENT種
// checksum_alg 1 :checksum算法,如果配置爲BINLOG_CHECKSUM_ALG_CRC32,event的footer部分爲4字節的checksum值。否則event的footer爲0字節
XID_EVENT: 在事務Commit的時候會產生該事件。在崩潰恢復的時候,會讀取最新的binlog文件中的xid_event,將prepared狀態的事務的xid和binlog中的xid進行比對,如果存在對應的binlog xid,提交。否則進行回滾。從而實現redo和binlog的一致性。
該事件pay_load爲8個字節的xid
ROTATE_EVENT: 當日志文件達到大小限制或者flush logs,產生該事件。該事件存儲了下個event的binlog file name和pos
具體格式: post-header: 8字節 postion
payLoad: 字符串:文件名
STOP_EVENT: 當服務器關閉或者slave機器執行reset slave的時候產生該事件。
該事件post-header和payLoad都爲空