sqlserver 2005 數(shù)據(jù)誤刪恢復(fù)
今天同事不小心將一個很重要的數(shù)據(jù)表中的數(shù)據(jù)刪除了,找了很多人都沒辦法恢復(fù)。我在網(wǎng)上搜索了一下資料,發(fā)現(xiàn)有一個方法可以一試,具體如下
http://www.knowsky.com/616730.html 非常感謝這位仁兄,用這個方法果然恢復(fù)成功
SQL Server數(shù)據(jù)恢復(fù)——日志備份
SQL Server數(shù)據(jù)恢復(fù)——日志備份
太坑了,我把數(shù)據(jù)給刪了
“大坑啊,數(shù)據(jù)被我誤刪了。”從事數(shù)據(jù)庫相關(guān)工作的過程中,我想應(yīng)該很多人會有過和我一樣的遭遇吧?尤其是在進行update或者delete操作的時候,忘記了where條件。這些毀滅性的操作,足以使你不能淡定。然后就開始到baidu、csdn、csblogs等等找恢復(fù)方案。網(wǎng)上呢,也是眾說紛紜,一時間,你又崩潰了。這個時候要學會淡定,否則,會讓你心碎的。
幸好,還可以數(shù)據(jù)恢復(fù)
出現(xiàn)這類問題之后,我們的目的就是想找回誤操作之前的數(shù)據(jù),在SSMS2008之前,有個很出名的工具LogExploer,但是好像是收費的(反正,我是對收費的工具,都是避而遠之)。除了這之外,我們還可以使用日志備份的功能,來完成數(shù)據(jù)恢復(fù)。
下面我們來講解用日志備份的方法來恢復(fù)數(shù)據(jù)(有圖有真相哦)。
準備工作:
1.運行下面的代碼,創(chuàng)建RecoverDemo數(shù)據(jù)庫,和TestTable表。
1 USE [RecoverDemo] 2 GO 3 /****** Object: Table [dbo].[TestTable] Script Date: 10/22/2014 17:00:36 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 SET ANSI_PADDING ON 9 GO10 CREATE TABLE [dbo].[TestTable](11 [A] [varchar](50) NULL12 ) ON [PRIMARY]13 GO14 SET ANSI_PADDING OFF15 GO16 INSERT [dbo].[TestTable] ([A]) VALUES (N'a1')17 INSERT [dbo].[TestTable] ([A]) VALUES (N'a2')18 INSERT [dbo].[TestTable] ([A]) VALUES (N'a3')19 INSERT [dbo].[TestTable] ([A]) VALUES (N'a4')20 INSERT [dbo].[TestTable] ([A]) VALUES (N'a5')21 INSERT [dbo].[TestTable] ([A]) VALUES (N'a6')22 INSERT [dbo].[TestTable] ([A]) VALUES (N'a7')23 INSERT [dbo].[TestTable] ([A]) VALUES (N'a8')24 INSERT [dbo].[TestTable] ([A]) VALUES (N'a9')25 INSERT [dbo].[TestTable] ([A]) VALUES (N'a10')
2.然后做一次完整備份,至于步驟就沒必要說了吧。(恢復(fù)數(shù)據(jù)的前提是,該數(shù)據(jù)庫至少做過一次完整備份)
提示:因為所有類型的備份都是基于完整備份的,如果沒有至少一次的完整備份,其他的備份都是多余的,所以一定要在建完數(shù)據(jù)庫后做一次完整備份。
3.確認數(shù)據(jù)庫的恢復(fù)模式為完整。

提示:在生產(chǎn)環(huán)境中,都強烈建議使用【完整恢復(fù)模式】,即使說相對于其他兩中恢復(fù)模式,完整恢復(fù)模式產(chǎn)生的日志會很大,但是在出現(xiàn)問題的時候,這都不算什么了。
4.執(zhí)行下面腳本,向TestTable中添加數(shù)據(jù)。
1 INSERT [dbo].[TestTable] ([A]) VALUES (N'a11') 2 INSERT [dbo].[TestTable] ([A]) VALUES (N'a12') 3 INSERT [dbo].[TestTable] ([A]) VALUES (N'a13') 4 INSERT [dbo].[TestTable] ([A]) VALUES (N'a14') 5 INSERT [dbo].[TestTable] ([A]) VALUES (N'a15') 6 INSERT [dbo].[TestTable] ([A]) VALUES (N'a16') 7 INSERT [dbo].[TestTable] ([A]) VALUES (N'a17') 8 INSERT [dbo].[TestTable] ([A]) VALUES (N'a18') 9 INSERT [dbo].[TestTable] ([A]) VALUES (N'a19')10 INSERT [dbo].[TestTable] ([A]) VALUES (N'a20')
檢查結(jié)果:select * from TestTable
災(zāi)難發(fā)生了
1.我們誤操作刪除(delete from TestTable)了TestTable中的數(shù)據(jù)。
這個時候,你就該不淡定了。
別急!我們來恢復(fù)數(shù)據(jù)
之前的那些都算是拋磚引玉吧,接下來才是我們重點想講述的。
1.做日志備份,記住一定要選擇【備份日志尾部】。

然后在【選項】中,嚴格按照紅色框中的選擇項進行勾選,否則,你可能會哭的。并且保證數(shù)據(jù)庫不要有連接,因為有鏈接,日志備份是備份不了的。

2.日志備份后數(shù)據(jù)庫會處于【正在還原狀態(tài)...】

日志備份后就可以進行數(shù)據(jù)還原了
3.先要還原完整備份,注意一定要選擇最后那一次的完整備份,否則是還原不了的。


4.最后一步就是還原日志備份了,選擇恢復(fù)的時間點不必太在意,只要填寫你誤操作之前的時間點,就可以了。



哈哈,數(shù)據(jù)還原成功了。

后事之師
1.在進行危險操作的的時候一定要,謹慎謹慎,以免造成不必要的麻煩。
2.一定要養(yǎng)成備份的習慣,千萬不要因為嫌棄日志文件過于龐大,就將恢復(fù)模式設(shè)為【簡單】,甚至是刪除日志文件,到那個時候神仙恐怕也就不了你了。

浙公網(wǎng)安備 33010602011771號