標籤:設定 開始 style 包含 limit var error: 組成 進位
MySQL5.0引入了一個新的binlog格式,也就是binlog format 4,,binlog format 4是專門為擴充設計的。binlog事件由4部分組成
1 通用頭
包含事件的基本資料,其中最重要的欄位就是事件類型和時間大小
2 提交頭
提交頭與特定事件類型有關,對於不同的類型,欄位儲存的資訊不同,但與通用頭一樣,給定的binlog檔案中,提交頭的大小是相同的,事件類型的大小由Foramat_description事件給出
3 事件體
事件頭後面就是事件體,大小可變,事件的通用頭列出了事件體的大小和結束為止。事件體儲存事件的主要資料,因事件類型不同而異,例如,Query事件的事件體儲存查詢,而User_var事
件儲存某個語句的使用者變數及其值
4 校正和
從5.6開始,如果伺服器設定產生檢驗和的前提,事件末尾就多一個檢驗和欄位,是一個32位整型數,用來檢查時間寫入後是否有損壞
為了保證每個事件的完整性,MySQL5.6引入了複製的事件的檢驗和。在寫事件的時候,添加一個檢驗和,然後在讀取這些事件的時候,計算這個校正和,並與之前寫入的值
進行比較。如果不匹配,在SLAVE在應用該事件的時候,停止執行。MySQL5.6中預設是開啟。也可以禁用
通過三個選擇項控制複製事件檢驗和
binlog-checksum=type
表示啟用檢驗和,並告訴伺服器用哪種方式計算檢驗和,有兩種,1 CRC32 2 none 關閉檢驗和,即預設產生檢驗和
master-verify-checksum=boolean
表示讀取二進位的時候,master是否要驗證檢驗和,也就是說dump線程從二進位日誌中讀取事件後,驗證其校正和,無誤後在發送給SLAVE。同理使用SHOW BINLOG EVENTS命令也是一樣。
如果有任何損壞事件,則拋出一個錯誤。預設關閉狀態
slave-verify-checksum=boolean
表示讀取中繼日誌中,在SLAVE資料庫上應用事件之前,SLAVE是否要驗證事件的校正和。預設關閉狀態
$ client/mysqlbinlog --verify-binlog-checksum master-bin.000001
# at 261
#110406 8:35:28 server id 1 end_log_pos 333 CRC32 0xed927ef2...
SET TIMESTAMP=1302071728/*!*/;
BEGIN
/*!*/;
# at 333
#110406 8:35:28 server id 1 end_log_pos 365 CRC32 0x01ed254d Intvar
SET INSERT_ID=1/*!*/;
ERROR: Error in Log_event::read_log_event(): ‘Event crc check failed!...
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET [email protected]_COMPLETION_TYPE*/;
更多內容:http://www.wangzhanjianshegs.com/網站建設
MySQL 二進位日誌的結構