背景:
因業務需求在下午四點備份了資料庫檔案:back1600.sql;
後來在五點半的時候誤執行了back1600.sql,導致在16:00到17:30之間所有操作過的資料全部還原到四點以前
後來在網上查詢了各種資料,最後找到了解決辦法:
利用mysqlbinlog恢復mysql資料
1:確保mysql日誌啟動
檢視辦法
未啟動的話(你就悲劇鳥,這篇文章也不用看了~~~),找到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以前了!
後記:
資料庫一定要啟用日誌
利用 MySql日誌檔案 恢復資料
1以前我錯誤的認為mysql的日誌可以恢復到任何時間的狀態,其實並不是這樣,這個恢復是有前提的,就是你至少得有乙個從日誌記錄開始後的資料庫備份,通過日誌恢復資料庫實際上只是乙個對以前操作的回放過程而已,不用想得太複雜,既然是回放你就得注意了,如果你執行了兩次恢復那麼就相當於是回放了兩次,後果如何你自...
mysql日誌恢復 Mysql之日誌恢復
對於mysql,每一步操作都會有相應記錄,如insert,update,delete drop alter等相關ddl或dml操作。有時難免會出錯,但在出錯時如何恢復以復原資料。例如,現在有這些資料 但被我truncate了。需要緊急恢復。首先,確保開啟了binlog輸出 然後,找到當前日誌檔案,使...
mysql刪除binlog日誌及日誌恢復資料的方法
基本上大家裝mysql,都會開啟binlog功能,開啟這個功能的好處是,日後方便恢復資料,而壞處是日誌檔案增長速度快,很快佔會佔滿磁碟空間,所以我們要定期或手工來刪除過大的日誌檔案。刪除日誌檔案的方法大概有如下幾中 一 設定日誌保留時長expire logs days自動刪除 檢視當前日誌儲存天數 ...