mysql binlog日誌(二) FORMAT_DESCRIPTION_EVENT、XID_EVENT等

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

                   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章