利用Mysql日誌恢復Mysql資料

2021-06-07 12:43:03 字數 1009 閱讀 4505

背景:

因業務需求在下午四點備份了資料庫檔案: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自動刪除 檢視當前日誌儲存天數 ...