Mysql Binlog的介紹

dbhelper發表於2014-12-04

binlog基本定義:二進位制日誌,也成為二進位制日誌,記錄對資料發生或潛在發生更改的SQL語句,並以二進位制的形式儲存在磁碟中;

作用:Mysql的作用類似於ORACLE的歸檔日誌,可以用來檢視資料庫的變更歷史具體的時間點所有的SQL操作)、資料庫增量備份和恢復(增量備份和基於時間點的恢復)、Mysql的複製(主主資料庫的複製、主從資料庫的複製

 

二進位制日誌的資訊:

檔案位置:預設存放位置為資料庫檔案所在目錄下

檔案的命名方式: 名稱為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註釋掉即可

 

方法二、不重啟修改二進位制日誌配置,該方法mysql的版本需要5.6以上

SET @@global.log_bin=1|0   (1為開啟,0為關閉)

SET @@global.binlog_size=37268(單位bytes)

 

3、暫停二進位制日誌

SET sql_log_bin={0|1}

 

4、修改二進位制日誌的大小

修改my.cnf引數檔案中的max_binlog_size的值;

說明:如果你的二進位制檔案的大小超過了max_binlog_size,它就是自動建立新的二進位制檔案。當然如果恰好在日誌檔案到達它的最大尺寸時寫入了大的事務,那麼日誌檔案還是會超過max_binlog_size的大小

 

5、進行二進位制日誌的切換,預設情況下當二進位制日誌寫滿了或者資料庫重啟了才會進行切換,但是也可以手工的進行切換的動作

mysql> flush logs;

 

6、其他引數:

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

當然也可以透過二進位制日誌完成資料庫的恢復,具體的使用將在資料庫的備份還原中介紹。

 

刪除二進位制日誌

二進位制日誌會不斷的增長,併產生多個檔案。因此,需要制定備份計劃和管理策略.無用的二進位制日誌要記得及時刪除。

刪除慢查詢日誌有三種方法:

1、作業系統命令直接刪除

2、reset master

3、PURGE BINARY LOGS BEFORE '2014-07-09 12:40:26′;

總結:二進位制日誌用途廣泛也很重要,大多少情況下會開啟,對於業務操作頻繁的資料庫需要制定相應的備份策略和刪除策略; 

*********************************************************************************************************************本文作者:JOHN QQ:1916066696 (請備註資料庫)

ORACLE技術部落格:ORACLE 獵人筆記 http://blog.itpub.net/12679300/

請掃描加微訊號!

 

******************************************************************************************

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1356138/,如需轉載,請註明出處,否則將追究法律責任。

相關文章