MySQL Binlog的介紹

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

相關文章
相關標籤/搜索