SQL Server 2008數(shù)據(jù)庫(kù)誤刪數(shù)據(jù)如何進(jìn)行數(shù)據(jù)恢復(fù)
有個(gè)朋友很著急地打電話給我,他用delete語(yǔ)句誤刪除了SQL Server 2008數(shù)據(jù)庫(kù)中兩個(gè)表中的所有記錄,而這個(gè)數(shù)據(jù)庫(kù)之前沒(méi)有任何備份。讓我?guī)退鉀Q一下,不然他要賠償客戶很多錢(qián)。
SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來(lái)不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個(gè)恢復(fù)需要有兩個(gè)前提條件:
1. 至少有一個(gè)誤刪除之前的數(shù)據(jù)庫(kù)完全備份。
2. 數(shù)據(jù)庫(kù)的恢復(fù)模式(Recovery mode)是“完整(Full)”。
針對(duì)這兩個(gè)前提條件,會(huì)有三種情況:
情況一、如果這兩個(gè)前提條件都存在,通過(guò)SQL語(yǔ)句只需三步就能恢復(fù),無(wú)需借助第三方工具。
a) 備份當(dāng)前數(shù)據(jù)庫(kù)的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫(kù)名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復(fù)一個(gè)誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫(kù)名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫(kù)恢復(fù)至誤刪除之前的時(shí)間點(diǎn):RESTORE LOG [數(shù)據(jù)庫(kù)] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時(shí)間點(diǎn)' , RECOVERY
情況二、如果第1個(gè)前提條件不存在,第2個(gè)前提條件存在,需要借助第三方工具。
情況三、如果第2個(gè)前提條件不存在,無(wú)法恢復(fù)。所以,一定要將數(shù)據(jù)庫(kù)恢復(fù)模式設(shè)置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開(kāi)始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來(lái)找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購(gòu)買(mǎi),Demo版并沒(méi)有數(shù)據(jù)恢復(fù)功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購(gòu)買(mǎi),但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫(kù)文件不超過(guò)24Gb。幸好朋友的數(shù)據(jù)庫(kù)文件不大,用它完成了誤刪除數(shù)據(jù)的恢復(fù)。
下面分享一下用Recovery for SQL Server進(jìn)行恢復(fù)的操作步驟:
1. 運(yùn)行Recovery for SQL Server
2. 點(diǎn)擊菜單中的 File > Recover,選擇要恢復(fù)的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(.mdf)
3. Next > Next,進(jìn)入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復(fù)誤刪除的數(shù)據(jù))。
4. Next 進(jìn)入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復(fù)的數(shù)據(jù)庫(kù)的日志文件路徑(log file path)。
5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過(guò)程中生成的SQL語(yǔ)句與bat文件。
6. 點(diǎn)擊Start,開(kāi)始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫(kù)。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- 定時(shí)自動(dòng)備份IIS的WWW日志的vbs腳本
- mssql自動(dòng)備份及自動(dòng)清除日志文件服務(wù)器設(shè)置
- sqlserver 數(shù)據(jù)庫(kù)日志備份和恢復(fù)步驟
- SQL Server2008 數(shù)據(jù)庫(kù)誤刪除數(shù)據(jù)的恢復(fù)方法分享
- SQL server 2008 數(shù)據(jù)安全(備份和恢復(fù)數(shù)據(jù)庫(kù))
- SQL Server誤區(qū)30日談 第20天 破壞日志備份鏈之后,需要一個(gè)完整備份來(lái)重新開(kāi)始日志鏈
- Shell腳本定時(shí)備份清除運(yùn)行系統(tǒng)日志的代碼
- win平臺(tái)oracle rman備份和刪除dg備庫(kù)歸檔日志腳本
- 數(shù)據(jù)庫(kù)崩潰,利用備份和日志進(jìn)行災(zāi)難恢復(fù)
- SQL Server 2008及更高版本數(shù)據(jù)庫(kù)恢復(fù)方法之日志尾部備份
相關(guān)文章
使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式
這篇文章主要介紹了使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式,需要的朋友可以參考下2016-12-12SQL Server 2008 阻止保存要求重新創(chuàng)建表的更改問(wèn)題的設(shè)置方法
不是很理解為什么在2008中會(huì)加入阻止保存要求重新創(chuàng)建表的更改這個(gè)選項(xiàng).癥狀表現(xiàn)為修改表結(jié)構(gòu)的時(shí)候會(huì)"阻止"你.而且我遇到的情況是居然有的時(shí)候阻止你,有的時(shí)候不阻止你,摸不到頭腦.2012-05-05SQL SERVER 2008 無(wú)法附加數(shù)據(jù)庫(kù)的解決方法
重裝SQL了之后,想把以前的數(shù)據(jù)庫(kù)附加上去,但是附加不了,錯(cuò)誤提示見(jiàn)上2011-12-12SQL2008 附加數(shù)據(jù)庫(kù)提示5120錯(cuò)誤解決方法
有些朋友在操作sql2008數(shù)據(jù)庫(kù)時(shí)會(huì)提示5120錯(cuò)誤,本文將介紹詳細(xì)的解決方法,有需要的朋友可以參考下2012-12-12Sql Server 2008數(shù)據(jù)庫(kù)新建分配用戶的詳細(xì)步驟
當(dāng)一個(gè)項(xiàng)目完成后,為了數(shù)據(jù)安全,總會(huì)對(duì)該項(xiàng)目的數(shù)據(jù)庫(kù)分配一個(gè)用戶,應(yīng)該說(shuō)總會(huì)創(chuàng)建一個(gè)用戶來(lái)管理這個(gè)數(shù)據(jù)庫(kù),并且這個(gè)用戶只能管理這個(gè)數(shù)據(jù)庫(kù),絕對(duì)不要使用sa用戶2017-10-10SQL Server 2008 數(shù)據(jù)庫(kù)鏡像部署實(shí)例之一 數(shù)據(jù)庫(kù)準(zhǔn)備
利用Sql Server 2008 enterprise X64,建立異步(高性能)鏡像數(shù)據(jù)庫(kù),同時(shí)建立見(jiàn)證服務(wù)器實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移2013-11-11SQL Server 2012降級(jí)至2008R2的方法
這篇文章主要為大家詳細(xì)介紹了SQL Server 2012降級(jí)至SQL Server 2008R2的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03使用SQL Server 2008遠(yuǎn)程鏈接時(shí)SQL數(shù)據(jù)庫(kù)不成功的解決方法
這篇文章主要介紹了使用SQL Server 2008遠(yuǎn)程鏈接時(shí)SQL數(shù)據(jù)庫(kù)不成功問(wèn)題的解決方法,需要的朋友可以參考下2013-08-08