MySQL的log-bin的日志功能


裝mysql,運行一段時間后,在mysql目錄下出現一堆類似mysql-bin.000***,從mysql-bin.000001開始一直排列下來,而且占用了大量硬盤空間,高達幾十個G. 對於這些超大空間占用量的文件我們應該怎么辦呢?

那么mysql數據庫文件夾中的mysql-bin.00001是什么文件?
mysql-bin.000001、mysql-bin.000002等文件是數據庫的操作日志,例如UPDATE一個表,或者DELETE一些數據,即使該語句沒有匹配的數據,這個命令也會存儲到日志文件中,還包括每個語句執行的時間,也會記錄進去的。

這些形如mysql-bin.00001的文件主要是用來做什么的呢?
1:數據恢復
如果你的數據庫出問題了,而你之前有過備份,那么可以看日志文件,找出是哪個命令導致你的數據庫出問題了,想辦法挽回損失。

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

如果不想要這些文件應該怎么做呢?
1:只有一個mysql服務器,那么可以簡單的注釋掉這個選項就行了。
vi /etc/my.cnf把里面的 log-bin 這一行注釋掉,重啟mysql服務即可。

2:如果你的環境是主從服務器,那么就需要做以下操作了。
A:在每個從屬服務器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日志。
B:使用SHOW MASTER LOGS獲得主服務器上的一系列日志。
C:在所有的從屬服務器中判定最早的日志,這個是目標日志,如果所有的從屬服務器是更新的,就是清單上的最后一個日志。
D:清理所有的日志,但是不包括目標日志,因為從服務器還要跟它同步。


簡單地說,這些MySQL目錄下的形如mysql-bin.000***的文件時MySQL的事務日志。

刪除復制服務器已經拿走的binlog是安全的,一般來說網絡狀況好的時候,保留最新的那一個足以。

(缺點是將無法使數據庫恢復先前的狀態)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM