mysql的binlog佔滿空間的解決辦法

binlog日誌佔滿磁盤分析過程及解決方案:通常出現這種問題都應該登錄服務器檢查磁盤、內存和進程使用的情況,通過top、df –h和free –m來檢查,發現磁盤空間滿了。再進一步通過du –sh對可以的目錄進行檢查,發現是mysql的binlog佔用空間過大。清理binlog的方法如下:

 

1)設置日誌保留時長expire_logs_days自動***

查看當前日誌保存天數:

show variables like '%expire_logs_days%';

這個默認是0,也就是logs不過期,可通過設置全局的參數,使他臨時生效:

set global expire_logs_days=7;

設置了只保留7天BINLOG, 下次重啓mysql這個參數默認會失敗,所以需在my.cnf中設置

expire_logs_days = 7

 

2)手動***BINLOG (purge binary logs)

用於***列於在指定的日誌或日期之前的日誌索引中的所有二進制日誌。這些日誌也會從記錄在日誌索引文件

PURGE {MASTER | BINARY} LOGS TO 'log_name'

PURGE {MASTER | BINARY} LOGS BEFORE 'date'

例如:

PURGE MASTER LOGS TO 'mysql-bin.310';

PURGE MASTER LOGS BEFORE '2019-06-22 13:00:00';

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

發佈了27 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章