Mysql清理二進位日誌的技巧

來源:互聯網
上載者:User

標籤:mysql清理二進位日誌的技巧

1:二進位日誌

二進位日誌記錄了所有的DDL(資料定義語言 (Data Definition Language))語句和DML(資料操作語言)語句,但是不記錄包括資料查詢的語句。語句以“事件”的形式儲存,它描述了資料的更改過程,此日誌對於災難時的資料恢複起著極其重要的作用

2:日誌的位置和格式

當用—log-bin[=file_name]選項啟動時,mysqld將包含所有更新資料的SQL命令寫入記錄檔。如果沒有給出file_name值,預設名為主機名稱後面跟_bin,如果給出了檔案名稱,但沒有包含路勁,則檔案預設被寫入參數DATADIR(資料目錄)指定的目錄

3:日誌的讀取

由於日誌以二進位的方式儲存,不能直接讀取,需要用mysqlbinlog工具來查看,文法如下:

#mysqlbinlog log_file

4:日誌的刪除

對於比較繁忙的OLTP系統,由於每天生產日誌量大,這些日誌如果長時間不清理,將會對磁碟空間帶來很大的浪費,因此,定期刪除日誌是DBA維護MySQL資料庫的一個重要工作內容,下面將介紹幾種刪除日誌的常見方法

(1):

執行“reset master;”命令,該命令將刪除所有二進位日誌,新日誌的編號從“000001” 開始,命令如下

Mysql>reset master;


(2):

執行“Purge master logs to ‘mysql-bin.*****’” 命令,該命令將刪除“*****” 編號之前的所有日誌,下列中刪除了“mysql-bin.000001”之前編號的所有日誌

Mysql>purge master logs to ‘mysql-bin.000015;


從結果中發現,編號000015之前的所有日誌都已經刪除

(3):

執行“purge master logs before ‘yyyy-mm-dd hh24:min:ss’”命令,該命令將刪除日期為“yyyy-mm-dd hh24:mi:ss”之前產生的所有日誌,下列中刪除了日期在“2010-05-22 01:00:00”之前的所有日誌

Mysql>purge master logs before ‘2010-05-22 01:00:00’’;


(4):

設定參數—expire_logs_days=#(days),此參數的含義是設定日誌的到期天數,過來指定的天數後日誌將會被自動刪除,這樣將有利於減少DBA管理日誌的工作量。

#vi /etc/my.cnf[mysqld]--expire_logs_days=3


這樣,3天前的日誌都會被刪除,系統自動刪除


本文出自 “尼古風鎖絲愁過” 部落格,請務必保留此出處http://smoke520.blog.51cto.com/9256117/1919604

Mysql清理二進位日誌的技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.