binlog基本定義:二進制日誌,也成爲二進制日誌,記錄對數據發生或潛在發生更改的SQL語句,並以二進制的形式保存在磁盤中;mysql
做用:MySQL的做用相似於Oracle的歸檔日誌,能夠用來查看數據庫的變動歷史(具體的時間點全部的SQL操做)、數據庫增量備份和恢復(增量備份和基於時間點的恢復)、Mysql的複製(主主數據庫的複製、主從數據庫的複製)linux
二進制日誌的信息:sql
文件位置:默認存放位置爲數據庫文件所在目錄下數據庫
文件的命名方式: 名稱爲hostname-bin.xxxxx (重啓mysql一次將會自動生成一個新的binlog)緩存
狀態的查看:mysql> show variables like '%log_bin%';安全
mysql> show variables like '%log_bin%';函數
+---------------------------------+-------+工具
| Variable_name | Value |操作系統
+---------------------------------+-------+日誌
| log_bin | ON | //表示當前已開啓二進制日誌//
| log_bin_trust_function_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
3 rows in set (0.00 sec)
二進制日誌的管理:
一、開啓二進制日誌配置
方法1、修改my.cnf參數文件,該方法須要重啓
log-bin = mysql-bin #打開日誌(主機須要打開),這個mysql-bin也能夠自定義,這裏也能夠加上路徑,如:/home/www/mysql_bin_log/mysql-bin
關閉二進制日誌的方法:log-bin = mysql-bin註釋掉便可
方法2、不重啓修改二進制日誌配置,該方法mysql的版本須要5.6以上
SET @@global.log_bin=1|0 (1爲開啓,0爲關閉)
SET @@global.binlog_size=37268(單位bytes)
三、暫停二進制日誌
SET sql_log_bin={0|1}
四、修改二進制日誌的大小
修改my.cnf參數文件中的max_binlog_size的值;
說明:若是你的二進制文件的大小超過了max_binlog_size,它就是自動建立新的二進制文件。固然若是剛好在日誌文件到達它的最大尺寸時寫入了大的事務,那麼日誌文件仍是會超過max_binlog_size的大小
五、進行二進制日誌的切換,默認狀況下當二進制日誌寫滿了或者數據庫重啓了纔會進行切換,可是也能夠手工的進行切換的動做
mysql> flush logs;
六、其餘參數:
binlog-cache-size=100m 設置二進制日誌緩存大小
sync-binlog=N(每一個N秒將緩存中的二進制日誌記錄寫回硬盤,默認值爲0。不過,你常常會陷入group commit函數與I/O之間二選一的矛盾。若是在replication環境中,因爲考慮到耐久性與一致性,則須要設置1。同時,還須要設置innodb_flush_log_at_trx_commit=1以及innodb-support-xa=1默認開啓;)
二進制日誌的寫入過程
查看二進制日誌的內容:
binlog不能直接用文本的方式打開,mysql提供了相應的查看工具:mysqlbinlog,直接查看單個二進制日誌文件:mysqlbinlog filename
例如: mysqlbinlog /data/mysql/mysql-bin.000001
固然也能夠經過二進制日誌完成數據庫的恢復,具體的使用將在數據庫的備份還原中介紹。
刪除二進制日誌
二進制日誌會不斷的增加,併產生多個文件。所以,須要制定備份計劃和管理策略.無用的二進制日誌要記得及時刪除。
刪除慢查詢日誌有三種方法:
一、操做系統命令直接刪除
二、reset master
三、PURGE BINARY LOGS BEFORE '2014-07-09 12:40:26′;
總結:二進制日誌用途普遍也很重要,大多少狀況下會開啓,對於業務操做頻繁的數據庫須要制定相應的備份策略和刪除策略;
MySQL數據恢復--binlog http://www.linuxidc.com/Linux/2014-03/97907.htm
MySQL中binlog日記清理 http://www.linuxidc.com/Linux/2011-02/32017.htm
如何安全刪除MySQL下的binlog日誌 http://www.linuxidc.com/Linux/2013-06/86527.htm
MySQL--binlog日誌恢復數據 http://www.linuxidc.com/Linux/2013-04/82368.htm
MySQL刪除binlog日誌及日誌恢復數據的方法 http://www.linuxidc.com/Linux/2012-12/77072.htm
MySQL binlog三種格式介紹及分析 http://www.linuxidc.com/Linux/2012-11/74359.htm
MySQL 利用binlog增量備份+還原實例 http://www.linuxidc.com/Linux/2012-09/70815.htm
MySQL刪除binlog日誌及日誌恢復數據 http://www.linuxidc.com/Linux/2012-08/67594.htm