1. 程式人生 > >MySQL bin-log 作用

MySQL bin-log 作用

1.資料恢復:如果你的資料庫出問題了,而你之前有過備份,那麼可以看日誌檔案,找出是哪個命令導致你的資料庫出問題了,想辦法挽回損失。

2.主從伺服器之間同步資料:主伺服器上所有的操作都在記錄日誌中,從伺服器可以根據該日誌來進行,以確保兩個同步。

 

3.在什麼時間會刪除過期日誌?

每次進行 LOG flush的時會自動刪除過期的日誌,那麼什麼時間才能觸發log flush,手冊上的解釋為:

  1. 重啟 MySQL
  2. bin-log 檔案大小達到引數 max_binlog_size 限制;
  3. 手工執行清理命令

 

自動清理方法1:(修改配置檔案和在mysql內設定引數可無需重啟服務)

vim my.cnf

expire_logs_days = 7 // 表示日誌保留7天,超過7天則設定為過期的

 

# mysql -u root -p > show binary logs; > show variables like '%log%'; > set global expire_logs_days = 7;

 

手動清理方法2:(推薦)

 

如果沒有主從複製,可以通過下面的命令重置資料庫日誌,清除之前的日誌檔案:

reset master

 

但是如果存在複製關係,應當通過 PURGE 的名來清理 bin-log 日誌,語法如下:

 

# mysql -u root -p

> purge master logs to 'mysql-bin.010’; //清除mysql-bin.010日誌

> purge master logs before '2016-02-28 13:00:00'; //清除2016-02-28 13:00:00前的日誌

> purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日誌

 

注意,不要輕易手動去刪除binlog,會導致binlog.index和真實存在的binlog不匹配,而導致expire_logs_day失效