刪除MYSQL BIN-LOG 日志
來源:程序員人生 發布時間:2014-08-08 18:34:06 閱讀次數:3779次
刪除MYSQL BIN-LOG 日志
想要恢愎數據庫以前的資料,執行:
show binlog events即可;
由于數據量很多,查看起來很麻煩,光打開個文件就要閃半天,所以應該適當刪除部分可不用的日志。
并且如果使用的時間足夠長的話,會把我的硬盤空間都給吃掉
1.登錄系統,/usr/bin/mysql
使用mysql查看日志
- mysql> show binary logs;
- +
- | Log_name | File_size |
- +
- | ablelee.000001 | 150462942 |
- | ablelee.000002 | 120332942 |
- | ablelee.000003 | 141462942 |
- +
2.刪除bin-log(刪除ablelee.000003之前的而沒有包含ablelee.000003)
- mysql> purge binary logs to 'ablelee.000003';
- Query OK, 0 rows affected (0.16 sec)
3. 查詢結果(現在只有一條記錄了.)
- mysql> show binlog events/G
- *************************** 1. row ***************************
- Log_name: ablelee.000003
- Pos: 4
- Event_type: Format_desc
- Server_id: 1
- End_log_pos: 106
- Info: Server ver: 5.1.26-rc-log, Binlog ver: 4
- 1 row in set (0.01 sec)
- (ablelee.000001和ablelee.000002已被刪除)
- mysql> show binary logs;
- +
- | Log_name | File_size |
- +
- | ablelee.000003 | 106 |
- +
- 1 row in set (0.00 sec)
(刪除的其它格式運用!)
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用于刪除列于在指定的日志或日期之前的日志索引中的所有二進制日志。這些日志也會從記錄在日志索引文件
中的清單中被刪除,這樣被給定的日志成為第一個。
例如:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00';
清除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
BEFORE變量的date自變量可以為'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同義詞。
如果您有一個活性的從屬服務器,該服務器當前正在讀取您正在試圖刪除的日志之一,則本語句不會起作用,
而是會失敗,并伴隨一個錯誤。不過,如果從屬服務器是休止的,并且您碰巧清理了其想要讀取的日志之一,則從屬服務器啟動后不能復制。當從屬服務器正在復制時,本語句可以安全運行。您不需要停止它們。
要清理日志,需按照以下步驟:
1. 在每個從屬服務器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日志。
2. 使用SHOW MASTER LOGS獲得主服務器上的一系列日志。
3. 在所有的從屬服務器中判定最早的日志。這個是目標日志。如果所有的從屬服務器是更新的,這是清單上的
最后一個日志。
4. 制作您將要刪除的所有日志的備份。(這個步驟是自選的,但是建議采用。)
5. 清理所有的日志,但是不包括目標日志。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈