MySQL Binlog的介紹
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′;
總結:二進位日誌用途廣泛也很重要,大多少情況下會開啟,對於業務操作頻繁的資料庫需要制定相應的備份策略和刪除策略;
MySQL資料恢複--binlog
MySQL中binlog日記清理
如何安全刪除MySQL下的binlog日誌
MySQL--binlog日誌恢複資料
MySQL刪除binlog日誌及日誌恢複資料的方法
MySQL binlog三種格式介紹及分析
MySQL 利用binlog增量備份+還原執行個體
MySQL刪除binlog日誌及日誌恢複資料
本文永久更新連結地址: