【文檔】四、Mysql Binlog事件含義詳解
下麵對binlog中事件做個簡單說明:
- UNKNOWN_EVENT
這個事件類型應該永遠不會出現。它從不會寫入binlog中。如果binlog中的事件沒法被識別成其他已知事件,他被當做UNKNOWN_EVENT。
- START_EVENT_V3
在binlog文件最開始的符號事件(在Mysql的4.0和4.1版本中,這個事件隻會在服務啟動時,寫到第一個binlog文件中)。這個事件在3.23到4.1版本中使用,在5.0版本中被FORMAT_DESCRIPTION_EVENT代替。
- QUERY_EVENT
當更新操作完成時寫入。
- STOP_EVENT
當mysqld停止時寫入。
- ROTATE_EVENT
當mysqld切換一個新的binlog文件時寫入。當FLUSH LOGS命令執行或者當前的binlog文件太大時,這個事件會出現。binlog文件的最大值由max_binlog_size定義。
- INTVAR_EVENT
當一個語句使用到AUTO_INCREMENT列時,或者LAST_INSERT_ID()函數時寫入。在這個語句的其他事件之前寫入。這個隻在QUERY_EVENT之前寫入,並且在基於行的日誌中不會使用。這個事件是以下麵兩種子類型的方式寫入的
INSERT_ID_EVENT表示下個語句中使用到的自增列。
LAST_INSERT_ID_EVENT表示下個語句中用到的LAST_INSERT_ID()函數。
- LOAD_EVENT
在Mysql 3.23中用於LOAD DATA INFILE語句中。
- SLAVE_EVENT
沒使用過。
- CREATE_FILE_EVENT
在Mysql 4.0和4.1版本中用於LOAD DATA INFILE語句。
- APPEND_BLOCK_EVENT
在Myql 4.0中用於LOAD DATA INFILE語句。
- EXEC_LOAD_EVENT
在Mysql 4.0和4.1中用於LOAD DATA INFILE語句。
- DELETE_FILE_EVENT
在Myql 4.0中用於LOAD DATA INFILE語句。
- NEW_LOAD_EVENT
在Mysql 4.0和4.1中用於LOAD DATA INFILE語句。
- RAND_EVENT
當一個語句使用RAND()函數時寫入。在這個語句的所有其他事件之前。表示在下個語句中使用RAND()生成隨機數用到的種子值。這個隻在QUERY_EVENT之前寫入,並且在基於行的日誌中不記錄。
- USER_VAR_EVENT
一個語句中使用到user變量時寫入。在這個語句的所有事件之前。表示在下個語句中使用到的user變量值。這個隻在QUERY_EVENT之前寫入,並且在基於行的日誌中不記錄。
- FORMAT_DESCRIPTION_EVENT
每個binlog文件開頭的符號事件。用於Mysql 5.0版本,替代START_EVENT_V3。
- XID_EVENT
在支持XA事務的存儲引擎中,事務提交時產生。普通的事務是這樣實現的:發送一個包含BEGIN語句的QUERY_EVENT和一個包含COMMIT語句的QUERY_EVENT(或者當事務回滾時的ROLLBACK語句)
- BEGIN_LOAD_QUERY_EVENT
用於Mysql 5.0中LOAD DATA INFILE語句。
- EXECUTE_LOAD_QUERY_EVENT
用於Mysql 5.0中LOAD DATA INFILE語句。
- TABLE_MAP_EVENT
用於基於行日誌記錄。這個事件在每個行操作事件之前。他把表定義映射為一個數字,表定義包含庫名和表名,還有列的定義。這個事件的目的是當master和slave的同一張表有不同的定義時,允許進行主從複製。屬於同一個事務的行操作事件會被按順序放到一個組中,在這種情況下,每個事件序列組以TABLE_MAP_EVENT事件開頭,每張表的序列組有一個。
- PRE_GA_WRITE_ROWS_EVENT
WRITE_ROWS_EVENT的廢棄版本
- PRE_GA_UPDATE_ROWS_EVENT
UPDATE_ROWS_EVENT的廢棄版本
- PRE_GA_DELETE_ROWS_EVENT
DELETE_ROWS_EVENT的廢棄版本
- WRITE_ROWS_EVENT
用於基於行的日誌記錄方式,這個事件記錄了單表的行插入。
- UPDATE_ROWS_EVENT
用於基於行的日誌記錄方式,這個事件記錄了單表的行更新。
- DELETE_ROWS_EVENT
用於基於行的日誌記錄方式,這個事件記錄了單表的行刪除。
- INCIDENT_EVENT
用於記錄master上發生的非常規事件。這個事件會通知slave,master發生了一些會導致數據不一致的事件。
- HEARTBEAT_LOG_EVENT
master發送給slave的事件,讓slave知道master還活著。不寫入日誌文件。
最後更新:2017-10-08 16:08:09