設定expire_logs_days自動過期清理binlog

甲骨文技術支援發表於2017-06-02

生產上有一個比較小的系統,發現mysql佔用空間較大,經排查發現是binlog比較多引起的

檢視binlog過期時間,設定的時間為90天,這個值預設是0天,也就是說不自動清理,可以根據生產情況修改,本例修改為7天

  1. mysql> show variables like 'expire_logs_days';
  2. +------------------+-------+
  3. | Variable_name | Value |
  4. +------------------+-------+
  5. | expire_logs_days | 90 |
  6. +------------------+-------+
  7. 1 row in set (0.00 sec)

  1. mysql> set global expire_logs_days=7;
  2. Query OK, 0 rows affected (0.00 sec)
設定之後不會立即清除,觸發條件是:


binlog大小超過max_binlog_size
手動執行flush logs
重新啟動時(MySQL將會new一個新檔案用於記錄binlog)

我們執行flush logs;

  1. mysql> flush logs;
  2. Query OK, 0 rows affected, 64 warnings (0.16 sec
如果binlog非常多,不要輕易設定改引數,有可能導致io爭用,這時候可以使用purge命令予以清除:

將bin.000055之前的binlog清掉:

  1. mysql>purge binary logs to 'bin.000055';
將指定時間之前的binlog清掉:

  1. mysql>purge binary logs before '2017-05-01 13:09:51';







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20893244/viewspace-2140198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章