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失效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM