通過sqlserver日誌恢復誤刪除的資料

2022-07-20 22:03:21 字數 1646 閱讀 4184

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

我遇到的情況是這樣的,**被植入木馬,盜取了我的web.config檔案,web.config檔案裡面的資料庫連線字串沒有加密,而我的資料庫遠端連線又沒有做ip限制,黑客通過資料庫客戶端連上我的資料庫後,將所有的表都delete掉了,所以大家一定要有乙個好習慣將資料庫連線字串加密或者對遠端訪問資料庫的ip作限制

通過log explorer工具我檢視到被刪除的時間點是:07-10 09:46:29.880,那我一會把資料還原到07-10 09:46:29.879就好咧

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

1、將資料庫日誌備份一下,用t-sql語句?1

backup log shuatodisk='c:\shua_log.bak'withformat

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、在【完整備份->現在】這個時間段內,你進行過資料庫日誌的較大程度壓縮,還原起來恐怕也困難了。

通過日誌恢復MS SQL資料案例

前提條件是資料庫的故障恢復改為非簡單模式,去掉自動關閉和自動收縮兩個選項。1 建立乙個資料庫test 建立時間為2006 11 18 09 40 2 對資料庫進行備份,備份時間為2006 11 18 09 42 語句如下 backup database test to disk d database...

通過日誌恢復MS SQL資料案例

前提條件是資料庫的故障恢復改為非簡單模式,去掉自動關閉和自動收縮兩個選項。1 建立乙個資料庫test 建立時間為2006 11 18 09 40 2 對資料庫進行備份,備份時間為2006 11 18 09 42 語句如下 backup database test to disk d database...

sqlserver 恢復模式及避免日誌爆滿的方法

recovery 迴圈日誌,空間自動 不可備份日誌,恢復時僅能恢復到資料庫備份時間點 用於落地資料或測試環境或olap,不推薦用於生產oltp 有時候distribution過大也可置為 recovery bulk logged 常規操作日誌正常記錄,特定操作時僅記錄少量日誌 恢復時特定操作將做回滾...