經過sqlserver日誌恢復誤刪除的數據

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

    我遇到的狀況是這樣的,網站被植入木馬,盜取了個人web.config文件,web.config文件裏面的數據庫鏈接字符串沒有加密,而個人數據庫遠程鏈接又沒有作IP限制,黑客經過數據庫客戶端連上個人數據庫後,將全部的表都Delete掉了,因此你們必定要有一個好習慣將數據庫鏈接字符串加密或者對遠程訪問數據庫的IP做限制sql

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

    

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

下面開始言歸正傳的進行恢復操做了網站

一、將數據庫日誌備份一下,用T-Sql語句加密

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

 

 

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

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

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

而後點【選項】選項卡頁,注意這一步很是重要哦code

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

 

三、待數據庫還原成功後,是這個狀態

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

如上圖所填,先填剛開始備份的日誌c:\shua_log.bak,而後勾選[還原],最重要的是選擇時間點,惋惜這個時間點不能選毫秒,因此我就選了29秒,這個時候會還原29.0秒之前的數據,而個人數據是從29.880秒被刪除的,因此選29秒妥妥的;爲何我沒有選擇28秒呢?由於個人數據庫每一秒的改變都很大,因此我儘量的縮小這個時間範圍。

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

 

 

ps:

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

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

相關文章
相關標籤/搜索