程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql binlog 安全刪除,mysqlbinlog刪除

Mysql binlog 安全刪除,mysqlbinlog刪除

編輯:MySQL綜合教程

Mysql binlog 安全刪除,mysqlbinlog刪除



簡介:

如果你的 Mysql 搭建了主從同步 , 或者數據庫開啟了 log-bin 日志 , 那麼隨著時間的推移 , 你的數據庫 data 目錄下會產生大量的日志文件

shell > ll /usr/local/mysql/data/ # 如下 
-rw-rw----. 1 mysql mysql 63278 9月 11 02:03 mysql-bin.000001 
-rw-rw----. 1 mysql mysql 1096670 9月 11 02:03 mysql-bin.000002 
-rw-rw----. 1 mysql mysql 133 9月 11 02:04 mysql-bin.000003 
-rw-rw----. 1 mysql mysql 133 9月 12 02:00 mysql-bin.000004 
-rw-rw----. 1 mysql mysql 271 9月 12 18:25 mysql-bin.000005 
-rw-rw----. 1 mysql mysql 133 9月 12 18:55 mysql-bin.000006 
-rw-rw----. 1 mysql mysql 133 9月 12 19:48 mysql-bin.000007 
-rw-rw----. 1 mysql mysql 133 9月 12 21:21 mysql-bin.000008 
-rw-rw----. 1 mysql mysql 321 11月 18 17:30 mysql-bin.000009 

# 由於我的是測試環境 , 所以文件還很小 , 生產環境中這些文件如果不做處理的話 , 甚至會撐爆你的磁盤

下面來介紹幾種解決方法:

~~> 如果你的數據庫沒有搭建主從同步這樣的服務 , binlog 日志也不用的情況下 , 你可以將 /etc/my.cnf 文件下面行刪除或注釋掉

log-bin=mysql-bin
~~> 如果你需要這樣的文件 , 那麼建議你在主配置文件 /etc/my.cnf 中添加如下行 , 來限制 binlog 日志文件存在時間 , 過期自動刪除

expire_logs_days = 7 # 只保留 7 天的日志文件
~~> 如果你直接得到一台服務器 , 上面的 binlog 日志已經影響到了磁盤空間 , 那麼你將使用下面命令清除

mysql> reset master; # 清空所有 binlog 文件
~~> 如果你的得到的服務器 , mysql 還做了主從同步 , 那麼上面的命令就不適合你了 , 因為 binlog 文件刪除過多的話 , 會導致數據不同步

mysql> show slave status\G # 你首先要來 slave 上查看從庫讀 binlog 到了哪裡 
Master_Log_File: mysql-bin.000009 # 我們可以看到是 mysql-bin.000009

mysql> purge master logs to 'mysql-bin.000009'; # 我們可以在 master 中執行這條指令 , 將 binlog 文件刪除至 mysql-bin.000009 前

mysql> purge master logs before '2014-11-18 00:00:00'; # 將 binlog 文件刪除至此日期前

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved