MySQL binlog

binlog(The Binary Log)用於記錄用戶對數據庫更新的SQL語句信息,例如數據庫的增刪改語句都會記錄到binlog裏,不會記錄查詢語句。默認狀況下,binlog日誌是二進制格式的,不能使用查看文本工具的命令(好比,cat,vi等)查看,而使用mysqlbinlog解析查看。mysql的binlog日誌是被設計用來做主從備份或者數據恢復用的。mysql

1. mysql提供了三種不一樣的binlog記錄形式sql

STATEMENT 語句模式(默認):日誌中記錄了全部的執行的sql語句,從庫在執行的時候,從新執行相應sql便可。可是由於不記錄語句執行的上下文,在從庫執行某些語句(好比存儲過程)的時候,有些語句不必定能成功執行致使丟失數據
ROW 行模式:日誌中記錄每一行每一個字段的變化,能清楚記錄每行數據的變化歷史,主從丟失數據的狀況大大下降,可是缺點是會產生大量的binlog佔用存儲空間
MIX 混合模式:在 Mixed 模式下,MySQL 會根據執行的每一條具體的 SQL 語句來區分對待記錄的日誌形式,也就是在 statement 和 row 之間選擇一種。好比遇到表結構變動的時候就會以 statement 模式來記錄,若是 SQL 語句確實就是 update 或者 delete 等修改數據的語句,那麼仍是會記錄全部行的變動。目前這種模式其實就是由mysql來選擇到底用哪一種模式記錄。數據庫

2. 如何開啓binlog日誌功能
在mysql的配置文件my.cnf中,增長log_bin參數便可開啓binlog日誌,也能夠經過賦值來指定binlog日誌的文件名
log_bin = /application/mysql/logs/dadong-binapp

3. 查看binlog狀況
工具

show variables like 'log_bin'  //查看本身的mysql是否打開了binlog選項
show variables like 'binlog_format' //查看binlog的格式
show binary logs   //獲取binlog列表
show master logs   //獲取binlog列表
show master status //查看正在寫入的binlog

4. 查看binlogspa

若是binlog的格式是STATEMENT,show binlog event的方式是能夠看到sql語句的
若是row模式的話只能經過mysqlbinlog工具進行查看,mysqlbinlog也是mysql dba經常使用的備份恢復數據的工具。該工具須要登陸到數據庫主機使用: mysqlbinlog [options] log_file.net

 

---------------------
做者:frog4
來源:CSDN
原文:https://blog.csdn.net/frog4/article/details/80280149
版權聲明:本文爲博主原創文章,轉載請附上博文連接!設計

相關文章
相關標籤/搜索