閱讀958 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【文檔】四、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

  上一篇:go  C#返回以數字日期編號為日期函數
  下一篇:go  【文檔】二、Binlog結構和內容概述