今天突然發現我的Linux下MySQL數據庫目錄多了好多文件

今天再次重現Blog了,雖然很忙,還是要來寫一下Blog的,嘻,首先還是一樣先謝謝Sery
 
今天發現了我的Linux下Mysql數據庫目錄多了好多Mysql-bin.0000X這些文件,經過自己查找資料和,諮詢Sery確認了這些就是二進制日誌文件,因爲數據庫重要,所以步步要小心,我需要非常確認這些文件可以刪除才刪除,有人會說爲什麼刪除呢,因爲文件太大了,佔用了我24G,後來經常Sery說,知道了可以直接進入目錄刪除和進入Mysql用命令刪除,我用了命令刪除,用瞭如下命令:
 
mysql>SHOW MASTER LOGS;
此命令顯示目前二進制日誌的數目
 
然後
mysql> PURGE MASTER LOGS TO ‘這個是顯示出來的日誌名’;
就搞定了
 
找了一些文章
 
1、
mysql>SHOW MASTER LOGS;
此命令顯示目前二進制日誌的數目。
然後
mysql> PURGE MASTER LOGS TO ‘binary-log.xxx’;
除了命令中給出的日誌之後的外,其他的二進制日誌全部刪除。
具體如下:
PURGE MASTER LOGS
PURGE { MASTER|BINARY } LOGS TO ‘log_name’
PURGE { MASTER|BINARY } LOGS BEFORE ‘date’
BEFORE變量的date自變量可以爲'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同義詞。
  例如:

  PURGE MASTER LOGS TO 'mysql-bin.010';

  PURGE MASTER LOGS BEFORE '2008-07-12 13:00:00';
2、清理步驟:

  1. 在每個從屬服務器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日誌。

  2. 使用SHOW MASTER LOGS獲得主服務器上的一系列日誌。

  3. 在所有的從屬服務器中判定最早的日誌。這個是目標日誌。如果所有的從屬服務器是更新的,這是清單上的最後一個日誌。

  4. 製作您將要刪除的所有日誌的備份。(這個步驟是自選的,但是建議採用。)

  5. 清理所有的日誌,但是不包括目標日誌我
3、恢復
使用mysqlbinlog命令恢復日誌
 
# mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword


※附錄
1、關於mysqlbinlog在mysql 5.0上的使用方法,可以參考:官方資料
2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看:
 
mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS \G'

3、當只是需要恢復部分記錄的時候,你可以使用時間點或位置點來定位,例如:
 
mysqlbinlog --start-date="2005-04-20 9:01:00" --stop-date="2005-04-20 10:00:01" /var/log/mysql/bin.123456|mysql -uroot -ppassword[code]
意思是恢復4月20日早上9點到10點這一段時間的數據。
[code]mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd

意思是重做368301到368312位置點之間的操作。(位置點可以就是用mysqlbinlog看到的at xxx節點)
 
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00"
     /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

同樣的,如果我們只是想查看某段時間的操作,直接把它導到一個文件即可。
4、mysql不會自動清除日誌,可以使用它自帶的mysql-log-rotate 腳本或手動編寫腳本清除舊日誌
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章