Software

清理 mysql binlog

繼上一篇的 GCP 硬碟炸掉的文章裡面發現主要讓他滿出來的問題主是因為 MySQL Binlog 的問題,所以就算是把空間擴大了但是主要還是要移除過期的 Binlog 才可以
一般來說 BingLog 有兩個很大的用途

  1. 資料恢復
    Binlog 記錄了所有的 SQL 動作,所以如果 binlog 完整了話就有可以恢復到某個指定的時間點。
  2. 主從複製
    從屬 DB 會去訂閱 binlog 的動作然後進而產生資料庫同步的效果

但是有時候過多的 binlog 會造成硬碟的負擔,使用下面的語句可以指定保留幾天內的 binglog

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

或是在 my.cnf 裡面加上

#只保留三天的 bin log
expire_logs_days=3

基本上這種清 bin log 的機制不管是手動還是自動最好還是有一個機制會比較恰當
例如輸出備份後刪除,因為 bin log 用途很廣泛,所以盡可能的保留下來