SQL Server 2008數(shù)據(jù)庫誤刪數(shù)據(jù)如何進行數(shù)據(jù)恢復(fù)
有個朋友很著急地打電話給我,他用delete語句誤刪除了SQL Server 2008數(shù)據(jù)庫中兩個表中的所有記錄,而這個數(shù)據(jù)庫之前沒有任何備份。讓我?guī)退鉀Q一下,不然他要賠償客戶很多錢。
SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個恢復(fù)需要有兩個前提條件:
1. 至少有一個誤刪除之前的數(shù)據(jù)庫完全備份。
2. 數(shù)據(jù)庫的恢復(fù)模式(Recovery mode)是“完整(Full)”。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過SQL語句只需三步就能恢復(fù),無需借助第三方工具。
a) 備份當(dāng)前數(shù)據(jù)庫的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復(fù)一個誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫恢復(fù)至誤刪除之前的時間點:RESTORE LOG [數(shù)據(jù)庫] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時間點' , RECOVERY
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要借助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復(fù)。所以,一定要將數(shù)據(jù)庫恢復(fù)模式設(shè)置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版并沒有數(shù)據(jù)恢復(fù)功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購買,但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫文件不超過24Gb。幸好朋友的數(shù)據(jù)庫文件不大,用它完成了誤刪除數(shù)據(jù)的恢復(fù)。
下面分享一下用Recovery for SQL Server進行恢復(fù)的操作步驟:
1. 運行Recovery for SQL Server

2. 點擊菜單中的 File > Recover,選擇要恢復(fù)的數(shù)據(jù)庫的數(shù)據(jù)文件(.mdf)

3. Next > Next,進入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復(fù)誤刪除的數(shù)據(jù))。

4. Next 進入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復(fù)的數(shù)據(jù)庫的日志文件路徑(log file path)。

5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過程中生成的SQL語句與bat文件。

6. 點擊Start,開始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。

7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫。

8. Next, 選擇 Import availiable data from both database and log files

9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
- 定時自動備份IIS的WWW日志的vbs腳本
- mssql自動備份及自動清除日志文件服務(wù)器設(shè)置
- sqlserver 數(shù)據(jù)庫日志備份和恢復(fù)步驟
- SQL Server2008 數(shù)據(jù)庫誤刪除數(shù)據(jù)的恢復(fù)方法分享
- SQL server 2008 數(shù)據(jù)安全(備份和恢復(fù)數(shù)據(jù)庫)
- SQL Server誤區(qū)30日談 第20天 破壞日志備份鏈之后,需要一個完整備份來重新開始日志鏈
- Shell腳本定時備份清除運行系統(tǒng)日志的代碼
- win平臺oracle rman備份和刪除dg備庫歸檔日志腳本
- 數(shù)據(jù)庫崩潰,利用備份和日志進行災(zāi)難恢復(fù)
- SQL Server 2008及更高版本數(shù)據(jù)庫恢復(fù)方法之日志尾部備份
相關(guān)文章
SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法
與 SQL Server建立連接時出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實例的錯誤,這篇文章主要介紹了SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
SQL2008 附加數(shù)據(jù)庫提示5120錯誤解決方法
有些朋友在操作sql2008數(shù)據(jù)庫時會提示5120錯誤,本文將介紹詳細的解決方法,有需要的朋友可以參考下2012-12-12
SQL SERVER 2008 無法附加數(shù)據(jù)庫的解決方法
重裝SQL了之后,想把以前的數(shù)據(jù)庫附加上去,但是附加不了,錯誤提示見上2011-12-12
通過SQL Server 2008數(shù)據(jù)庫復(fù)制實現(xiàn)數(shù)據(jù)庫同步備份
下面通過一個示例和大家一起學(xué)習(xí)一下如何部署SQL Server 2008數(shù)據(jù)庫復(fù)制2014-08-08
深入SqlServer2008 數(shù)據(jù)庫同步的兩種方式(Sql JOB)的分析介紹
數(shù)據(jù)庫同步是一種比較常用的功能。以下結(jié)合我自己的體會整理的,如果有理解不完全或者有誤的地方望大牛不理賜教2013-04-04
SQL Server2008導(dǎo)出數(shù)據(jù)之Excel詳細解析
我覺得數(shù)據(jù)庫的導(dǎo)入和導(dǎo)出很有用,順便做一下總結(jié),以免將來有遺忘。需要的朋友可以過來參考下2013-08-08
圖文詳解Windows Server2012 R2中安裝SQL Server2008
這篇文章主要以圖文結(jié)合的方式向大家推薦Windows Server2012 R2中安裝SQL Server2008的詳細過程,感興趣的小伙伴們可以參考一下2015-11-11
SQL Server把單個用戶轉(zhuǎn)換成多個用戶的方法
這篇文章主要介紹了SQL Server把單個用戶轉(zhuǎn)換成多個用戶的方法,一條語句即可解決,需要的朋友可以參考下2014-06-06
SQL Server 2008中的代碼安全(二) DDL觸發(fā)器與登錄觸發(fā)器
MicrosoftSQL Server 提供兩種主要機制來強制使用業(yè)務(wù)規(guī)則和數(shù)據(jù)完整性:約束和觸發(fā)器。觸發(fā)器為特殊類型的存儲過程,可在執(zhí)行語言事件時自動生效。SQL Server 包括三種常規(guī)類型的觸發(fā)器:DML 觸發(fā)器、DDL 觸發(fā)器和登錄觸發(fā)器。2011-06-06

