利用Mysql日誌恢復Mysql數據

背景:

因業務需求在下午四點備份了數據庫文件:back1600.sql;

後來在五點半的時候誤執行了back1600.sql,導致在16:00到17:30之間所有操作過的數據全部還原到四點以前


後來在網上查找了各種資料,最後找到了解決辦法:

利用mysqlbinlog恢復Mysql數據


1:確保Mysql日誌啓動

查看辦法

mysql>show variables like 'log_bin';

未啓動的話(你就悲劇鳥,這篇文章也不用看了~~~),找到Mysql的配置文件my.ini,添加

log-bin = D:/MySQL/log-bin/logbin.log  

重啓mysql,重啓後會在D:/MySQL/log-bin目錄下生成logbin.000001 和 logbin.index 兩個文件


2:保存數據到my.sql

D:\MySQL\MySQL Server 5.1\bin\mysqlbinlog --stop-date="2012-07-03 17:30:00" --result-file="D:\my.sql" D:/MySQL/log-bin/logbin.000001 | mysql -uroot -proot

利用mysqlbinlog 導出2012-07-03 17:30:00之前的數據,保存到D:\my.sql


3:恢復數據

mysql> source D:\my.sql

OK,數據恢復到2012-07-03 17:30:00以前了!


後記:

數據庫一定要啓用日誌



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章