標籤:weight 二進位日誌 自動 寫檔案 混合 函數 命令 存在 limit
mysql二進位日誌稱為binlog,記錄了資料庫修改資料的操作,可以用作資料恢複。
binlog有三種記錄方式
1、statement
記錄修改資料的原始sql,IO量較小。sql中存在使用user()等依賴運行環境的函數時,可能導致資料恢複不正確。
2、row
記錄每行資料的修改動作,IO較大,準確性最高,生產環境推薦使用這種模式。
3、mixed
上述兩種模式混合使用。
binlog參數設定
1、log_bin
唯讀參數,只能在my.ini(my.cnf)中設定,log_bin的值為二進位檔案名字,存在log_bin配置則表示開啟二進位檔案,不存在則表示關閉。
2、sql_log_bin
會話界別變數,ON表示當前會話會記錄binlog,OFF表示當前會話不記錄binlog。
3、binlog_format
binlog的三種記錄方式。
4、max_binlog_size
binlog記錄檔大小,以位元組為單位,日誌超過此大小則建立新的binlog日誌,檔案名稱尾碼自動加1。
5、sync_binlog
1,表示每一次事務提交之後,都會立即將記憶體中的二進位日誌同步到磁碟中的二進位記錄檔中。
0,表示由mysql自己決定什麼時候寫檔案。
N,表示提交N次事務後,寫檔案。
顯然,0效能最高,安全性最差;1效能最差,安全性最高。
二進位日誌查詢
1、查看二進位記錄檔列表
show master logs;show binary logs;
2、查看當前正在使用的二進位記錄檔
show master status;
3、查看二進位記錄檔中的事件(查看binlog內容)
show binlog eventsshow binlog events in ‘mybinlog.000001‘show binlog events in ‘mybinlog.000001‘from 245show binlog events in ‘mybinlog.000001‘limit 3show binlog events in ‘mybinlog.000001‘limit 2,5show binlog events in ‘mybinlog.000001‘from 245 limit 10show binlog events in ‘mybinlog.000001‘from 245 limit 4,20
4、mysqlbinlog命令
(1)檔案系統中使用mysqlbinlog命令查看對應的二進位日誌:mysqlbinlog mybinlog.000001
(2)從指定位置開始查看二進位日誌:mysqlbinlog --start-position 215 mybinlog.000001
(3)指定從哪個位置開始,到那個位置結束,查看這之間的二進位記錄檔:mysqlbinlog --start-position 215 --stop-position 324 mybinlog.000001
(4)指定的時間開始查看,比如,查看2017年6月4日10點40以後的日誌:mysqlbinlog --start-datetime "2017-6-4 11:40:00" mybinlog.000001;
(5)指定結束時間:mysqlbinlog --start-datetime "2017-6-4 11:40:00" --stop-datetime "2017-6-4 12:55:00" mybinlog.000001;
mysql二進位日誌