繼上一篇的 GCP 硬碟炸掉的文章裡面發現主要讓他滿出來的問題主是因為 MySQL Binlog 的問題,所以就算是把空間擴大了但是主要還是要移除過期的 Binlog 才可以
一般來說 BingLog 有兩個很大的用途
- 資料恢復
Binlog 記錄了所有的 SQL 動作,所以如果 binlog 完整了話就有可以恢復到某個指定的時間點。 - 主從複製
從屬 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 用途很廣泛,所以盡可能的保留下來