mysql刪除binlog日誌及日誌恢復資料的方法

2021-09-03 04:49:53 字數 1811 閱讀 6276

基本上大家裝mysql,都會開啟binlog功能,開啟這個功能的好處是,日後方便恢復資料,而壞處是日誌檔案增長速度快,很快佔會佔滿磁碟空間,所以我們要定期或手工來刪除過大的日誌檔案。 

刪除日誌檔案的方法大概有如下幾中: 

一、設定日誌保留時長expire_logs_days自動刪除 

#檢視當前日誌儲存天數: 

show variables like 『%expire_logs_days%』;    

#這個預設是0,也就是logs不過期,可通過設定全域性的引數,使他臨時生效: 

setglobal expire_logs_days=7;    

#設定了只保留7天binlog, 下次重啟mysql這個引數缺省會失敗,所以需在my.cnf中設定   

expire_logs_days = 7   

二、手動刪除binlog (purge binary logs) 

#用於刪除列於在指定的日誌或日期之前的日誌索引中的所有二進位制日誌。這些日誌也會從記錄在日誌索引檔案  

purge  logs to 『log_name』   

purge  logs before 『date』 

#例如: 

purge master logs to 『mysql-bin.010′;   

purge master logs before 『2008-06-22 13:00:00′;   

purge master logs before date_sub( now( ), interval 3 day);  

其它: 

檢視當前日誌檔案列表:show binary logs或是show master logs;  

使用binlog日誌的目的是為了方便恢復資料,所以我們不光要會刪除,還要會用日誌來恢復資料。 

使用binlog恢復資料: 

使用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點這一段時間的資料。  

mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd    

#意思是重做368301到368312位置點之間的操作。(位置點可以就是用mysqlbinlog看到的at ***節點)     

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    

#同樣的,如果我們只是想檢視某段時間的操作,直接把它導到乙個檔案即可。   

刪除mysql的binlog日誌

mysql的binlog日誌介紹 binlog 是mysql 以二進位制形式列印的日誌,它預設不加密,不壓縮。binlog二進位制日誌包含了所有更新了資料或者已經潛在更新了資料 例如,沒有匹配任何行的乙個delete 的所有語句。語句以 事件 的形式儲存,它描述資料更改檔案位置和格式 當用 log ...

mysql刪除binlog日誌及日誌恢復資料的方法

基本上大家裝mysql,都會開啟binlog功能,開啟這個功能的好處是,日後方便恢復資料,而壞處是日誌檔案增長速度快,很快佔會佔滿磁碟空間,所以我們要定期或手工來刪除過大的日誌檔案。刪除日誌檔案的方法大概有如下幾中 一 設定日誌保留時長expire logs days自動刪除 檢視當前日誌儲存天數 ...

刪除binlog日誌 造成MySQL無法啟動

在伺服器上直接刪除binlog日誌,會造成mysql無法啟動 error failed to open log error could not open log file error can t init tc log error aborting 解決方法 將已經刪除的binlog條目從mysql...