本節介紹幾種常用的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都為空