MySQL bin log 日誌清理方式

2022-05-05 09:09:07 字數 932 閱讀 1378

1.資料恢復:如果你的資料庫出問題了,而你之前有過備份,那麼可以看日誌檔案,找出是哪個命令導致你的資料庫出問題了,想辦法挽回損失。

2.主從伺服器之間同步資料:主伺服器上所有的操作都在記錄日誌中,從伺服器可以根據該日誌來進行,以確保兩個同步。

3.在什麼時間會刪除過期日誌?

每次進行 log flush的時會自動刪除過期的日誌,那麼什麼時間才能觸發log flush,手冊上的解釋為:

重啟 mysql

bin-log 檔案大小達到引數 max_binlog_size 限制;

手工執行清理命令

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;

如果沒有主從複製,可以通過下面的命令重置資料庫日誌,清除之前的日誌檔案:

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

mysql binlog日誌刪除清理

刪除mysql的binlog日誌有兩種方法 自動刪除和手動刪除 修改mysql的配置檔案my.cnf,新增binlog過期時間的配置項 expire logs days 30,然後重啟mysql,這個有個致命的缺點就是需要重啟mysql。expire logs days引數只支援整數,且範圍是 0,...

mysql binlog日誌自動清理及手動刪除

場景 當開啟mysql資料庫主從時,會產生大量如mysql bin.00000 log的檔案,耗費大量磁碟空間。解決方法 1.關閉mysql主從,關閉binlog 然後重啟資料庫。2.重啟mysql,開啟mysql主從,設定expire logs days 此方法需要重啟mysql。也可以直接在my...

mysql binlog日誌刪除

隨著mysql的執行,其binlog日誌會越來越多,占用的磁碟會越來越大。我們需要定期清理這些過期的binlog日誌。處理方法主要有兩種 1 自動刪除 2 手動刪除 1 自動刪除 a,修改my.cnf引數 需要更改其配置檔案my.cnf,新增引數expire logs days 10,單位是天。b,...