通過sqlserver日志恢復誤刪除的數據


如果你已經急的焦頭爛額,看到這篇文章的時候,請你換個坐姿,深呼吸幾次,靜下心來將這篇文章讀完,也許你的問題迎刃而解。

    我遇到的情況是這樣的,網站被植入木馬,盜取了我的web.config文件,web.config文件里面的數據庫連接字符串沒有加密,而我的數據庫遠程連接又沒有做IP限制,黑客通過數據庫客戶端連上我的數據庫后,將所有的表都Delete掉了,所以大家一定要有一個好習慣將數據庫連接字符串加密或者對遠程訪問數據庫的IP作限制

    因被黑客Delete掉所有數據的具體時間點我不清楚,所以我就用了一個工具Log Explorer來查看分析數據庫日志,看具體是什么時候被Delete掉的(若你已經知道想要還原的時間點,就不用使用此工具啦),至於Log Explorer如何安裝使用的,這里就不贅述了,去百度一搜一大堆,安裝的時候Client和Server都選,然后安裝中會有一步讓你輸入數據庫的用戶名和密碼,其他不懂的就瘋狂下一步吧。

    

    通過Log Explorer工具我查看到被刪除的時間點是:07-10 09:46:29.880,那我一會把數據還原到07-10 09:46:29.879就好咧

下面開始言歸正傳的進行恢復操作了

1、將數據庫日志備份一下,用T-Sql語句

1
BACKUP LOG shua  TO  DISK= 'c:\shua_log.bak'  WITH  FORMAT

 

 

2、因我的數據庫每天都有自動完整備份,找一個最近時間的完整備份,來還原一下,這里我不往舊庫覆蓋了,直接還原成一個新的數據庫shua2

用SQL Server Management Studio工具進行界面操作吧,寫sql語句還原太復雜了,不會啊。

對着數據庫->右擊->還原數據庫,下圖是我在[還原數據庫]界面->[常規]選項卡頁的填寫情況

然后點【選項】選項卡頁,注意這一步非常重要哦

點擊【不對數據庫執行任何操作,不回滾來提交的事務】,然后確定。如果數據庫比較大,這個還原要等很長時間,出去吸幾口新鮮空氣吧,大功就要告成了。

 

3、待數據庫還原成功后,是這個狀態

顯示(正在還原...),對着shua2這個數據庫右擊->任務->還原->還原事務日志。

如上圖所填,先填剛開始備份的日志c:\shua_log.bak,然后勾選[還原],最重要的是選擇時間點,可惜這個時間點不能選毫秒,所以我就選了29秒,這個時候會還原29.0秒以前的數據,而我的數據是從29.880秒被刪除的,所以選29秒妥妥的;為什么我沒有選擇28秒呢?因為我的數據庫每一秒的改變都很大,所以我盡可能的縮小這個時間范圍。

填好后,點【確定】吧,大功告成了。現在數據庫已恢復成2014-07-10 09:46:29.0時的狀態,自然的我那些表數據都回來了。

 

 

ps:

    1、若您的數據庫從來沒有完整備份過,就不能用此辦法恢復了;

    2、在【完整備份->現在】這個時間段內,你進行過數據庫日志的較大程度壓縮,還原起來恐怕也困難了。


免責聲明!

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



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