當mysql數據被誤操作刪除后,數據恢復的思路。


MYSQL數據恢復

當mysql的數據被誤操作刪除后

大致有如下幾種恢復思路

 

一.直接還原

如果數據庫每天都有用mysqldump去備份,那么當數據丟失之后,只需要把sql直接導入數據庫即可。

mysql  -uroot  -ptqw961110  <  backup.sql

 

二.通過bin-log還原

但是遺憾的是,有時候數據庫的數據還沒來得及備份就被誤操作刪掉了。那么這時候bin-log就起到很好的作用了。

bin-log在主從復制上發揮着很重要的作用,主要是記錄主庫最新的各種操作,並告訴從庫,讓從庫執行同樣的操作,從而實現同步復制。

因此,當數據庫數據被誤刪了,我們可以將bin-log里面的操作給數據庫再執行一次。

在執行還原操作前,要先停止數據庫,避免有新的數據寫入。

假如不確定丟失的數據是在什么時段丟失的,建議進行一次全備操作。

mysqlbinlog --no-defaults -d wordpress mysql-bin.000014 > bin.sql

把所有的bin-log匯總到bin.sql

然后把drop語句剔除掉(又或者可以針對誤操作的語句進行針對性的搜索,搜索出誤操作語句然后剔除掉)

cat bin.sql | grep -i -v "drop" > bin.sql

最后把bin-sql導入mysql即可。(操作前注意先把現有的數據進行備份)

 

三.如果還原時主庫還有數據需要寫入不能停庫

方法步驟與第二種方法相似,也需要把bin-log變成sql,剔除drop語句。

然后把bin-sql導入到從庫里面。

帶主庫寫入數據完畢

刷新主庫bin-log

將新的bin-log解析成sql導入到從庫中。

然后將服務切換到從庫,讓從庫提供業務。

 

但是,無論最后能不能恢復,誤操作導致數據丟失的后果還是很嚴重的。小伙伴們平時一定要注意數據庫的操作權限管理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM