Software

MySQL 移除 binlog 方式

因為最近資料庫逐漸肥大,然後 RD 那邊反映它們已經將程式所產生的 LOG 從 DB 移除了,後來查的結果才發現是 MySQL binlog 的問題 在 my.cnf 裡面加入自動移除天數 expire_logs_days=3  #僅保留三天,預設值是0永久保留 進入 MySQL 手動移除 show binary logs; #顯示出目前 binlog 狀況 RESET MASTER; #刪除所有的 binlog 並從頭開始編號 PURGE MASTER LOGS TO ‘xxx-bin.010’; # 由 xxx-bin.010 開始開始刪除之前的 log PURGE MASTER LOGS BEFORE ‘2022-01-01 00:00:00’; #刪除相對日期之前的 log

Continue Reading
Software

清理 mysql binlog

繼上一篇的 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 用途很廣泛,所以盡可能的保留下來

Continue Reading