解析MYSQL BINLOG 二進位制格式(7)--Xid_log_event/XID_EVENT
原創:轉載請說明出處謝謝!
上接
http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二進位制格式(1)--準備工作
http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二進位制格式(2)--FORMAT_DESCRIPTION_EVENT
http://blog.itpub.net/7728585/viewspace-2133321/ 解析MYSQL BINLOG 二進位制格式(3)--QUERY_EVENT
http://blog.itpub.net/7728585/viewspace-2133429/ 解析MYSQL BINLOG 二進位制格式(4)--TABLE_MAP_EVENT
http://blog.itpub.net/7728585/viewspace-2133463/ 解析MYSQL BINLOG 二進位制格式(5)--WRITE_ROW_EVENT
http://blog.itpub.net/7728585/viewspace-2133469/ 解析MYSQL BINLOG 二進位制格式(6)--UPDATE_ROW_EVENT/DELETE_ROW_EVENT
class:Xid_log_event
event:XID_EVENT
event_code:16
這個事件是支援事物的儲存引擎事物進行了commit,他會生成一個xid 號
但是原始碼的註釋上也說明如下:
This is the subclass of Xid_event defined in libbinlogevent,
An XID event is generated for a commit of a transaction that modifies one or
more tables of an XA-capable storage engine
Logs xid of the transaction-to-be-committed in the 2pc protocol.
Has no meaning in replication, slaves ignore it
The inheritance structure in the current design for the classes is
as follows
文件中說明了他生成的方式
thd->transaction.xid_stae.xid.get_mysq_xid()
注意這個event並不是 row 格式特有的,statement模式也會有
這個event的解析很簡單
--fixed data
empty
--variable data part
8 bytes:XID號,但是注意這個是和平臺相關的也就是和作業系統使用的little-endian和
big-endian有關,和其他event的數字使用little-endian不一樣這裡特別說明
Xid_event
解析:
# at 445
#170214 3:38:37 server id 93157 end_log_pos 476 CRC32 0x70cfaab6
# Position Timestamp Type Master ID Size Master Pos Flags
# 1bd 3d 0b a2 58 10 e5 6b 01 00 1f 00 00 00 dc 01 00 00 00 00
# 1d0 c7 00 00 00 00 00 00 00 b6 aa cf 70 |...........p|
# Xid = 199
COMMIT/*!*/;
c7 00 00 00 00 00 00 00 :linux little-endian顯示,0XC7也就是XID=199
可以看到和mysqlbinlog出來的Xid = 199 一致,一旦出現了這個event代表事物
已經提交了
到此XID_EVENT解析完成
上接
http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二進位制格式(1)--準備工作
http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二進位制格式(2)--FORMAT_DESCRIPTION_EVENT
http://blog.itpub.net/7728585/viewspace-2133321/ 解析MYSQL BINLOG 二進位制格式(3)--QUERY_EVENT
http://blog.itpub.net/7728585/viewspace-2133429/ 解析MYSQL BINLOG 二進位制格式(4)--TABLE_MAP_EVENT
http://blog.itpub.net/7728585/viewspace-2133463/ 解析MYSQL BINLOG 二進位制格式(5)--WRITE_ROW_EVENT
http://blog.itpub.net/7728585/viewspace-2133469/ 解析MYSQL BINLOG 二進位制格式(6)--UPDATE_ROW_EVENT/DELETE_ROW_EVENT
class:Xid_log_event
event:XID_EVENT
event_code:16
這個事件是支援事物的儲存引擎事物進行了commit,他會生成一個xid 號
但是原始碼的註釋上也說明如下:
This is the subclass of Xid_event defined in libbinlogevent,
An XID event is generated for a commit of a transaction that modifies one or
more tables of an XA-capable storage engine
Logs xid of the transaction-to-be-committed in the 2pc protocol.
Has no meaning in replication, slaves ignore it
The inheritance structure in the current design for the classes is
as follows
文件中說明了他生成的方式
thd->transaction.xid_stae.xid.get_mysq_xid()
注意這個event並不是 row 格式特有的,statement模式也會有
這個event的解析很簡單
--fixed data
empty
--variable data part
8 bytes:XID號,但是注意這個是和平臺相關的也就是和作業系統使用的little-endian和
big-endian有關,和其他event的數字使用little-endian不一樣這裡特別說明
Xid_event
解析:
# at 445
#170214 3:38:37 server id 93157 end_log_pos 476 CRC32 0x70cfaab6
# Position Timestamp Type Master ID Size Master Pos Flags
# 1bd 3d 0b a2 58 10 e5 6b 01 00 1f 00 00 00 dc 01 00 00 00 00
# 1d0 c7 00 00 00 00 00 00 00 b6 aa cf 70 |...........p|
# Xid = 199
COMMIT/*!*/;
c7 00 00 00 00 00 00 00 :linux little-endian顯示,0XC7也就是XID=199
可以看到和mysqlbinlog出來的Xid = 199 一致,一旦出現了這個event代表事物
已經提交了
到此XID_EVENT解析完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2133502/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解析MYSQL BINLOG二進位制格式(9)--infobin解析binlog幫助文件MySql
- 解析MYSQL BINLOG二進位制格式(10)--問題解答MySql
- 解析MYSQL BINLOG 二進位制格式(1)--準備工作MySql
- 解析MYSQL BINLOG 二進位制格式(3)--QUERY_EVENTMySql
- 解析MYSQL BINLOG 二進位制格式(4)--TABLE_MAP_EVENTMySql
- 解析MYSQL BINLOG 二進位制格式(5)--WRITE_ROW_EVENTMySql
- 解析MYSQL BINLOG 二進位制格式(2)--FORMAT_DESCRIPTION_EVENTMySqlORM
- 解析MYSQL BINLOG 二進位制格式(6)--UPDATE_ROW_EVENT/DELETE_ROW_EVENTMySqldelete
- MySQL二進位制檔案(binlog)MySql
- Java二進位制Class檔案格式解析Java
- 解析MYSQL BINLOG二進位制格式(8)--GTID_LOG_EVENT/ANONYMOUS_GTID_LOG_EVENT及其他MySql
- mysql二進位制日誌格式介紹MySql
- 如何在MySQL中檢視binlog二進位制日誌?MySql
- centos 7 二進位制安裝mysql 5.7.25CentOSMySql
- office檔案格式複合文件二進位制結構解析
- CentOS7 安裝 MySQL8.0(二進位制)CentOSMySql
- MySQL二進位制日誌MySql
- mysql 二進位制日誌MySql
- mixed模式下的binlog二進位制日誌解析,需要加-v引數模式
- centos7搭建lnmp安裝二進位制mysql【三】CentOSLNMPMySql
- 二進位制求5個1的格式。。。。
- Mysql二進位制包安裝MySql
- 管理mysql二進位制日誌MySql
- mysql的二進位制日誌MySql
- 二進位制與二進位制運算
- 進位制詳解:二進位制、八進位制和十六進位制
- [MySQL binlog]徹底解析Mixed日誌格式的binlogMySql
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- MySQL二進位制日誌的三種格式優缺點比較MySql
- MySQL 壓縮二進位制日誌MySql
- mysql二進位制日誌詳解MySql
- MySQL linux二進位制安裝MySqlLinux
- mysql 二進位制日誌總結MySql
- 利用vstruct解析二進位制資料Struct
- (二進位制)
- 二進位制
- 十進位制——二 (八、十六 )進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換