正文:
用 Log Explorer 恢復(fù),,如果沒(méi)有Log Explorer可以用日志文件進(jìn)行時(shí)間點(diǎn)恢復(fù),
將會(huì)失去此時(shí)間點(diǎn)之后的所有數(shù)據(jù)庫(kù)改變
example: 首先對(duì)數(shù)據(jù)庫(kù)進(jìn)行日志備份
查詢(xún)分析器里 1.use northwind insert employees(lastname,firstname) values('aaa','bf') 記下這時(shí)的時(shí)間
2.過(guò)3分鐘輸入 use northwind insert employees(lastname,firstname) values('bbb','cd')
3.此時(shí)select * from employees 將能看到這兩條記錄
4.進(jìn)行日志備份,選中northwind數(shù)據(jù)庫(kù),所有任務(wù),backup database 在對(duì)話框中,選擇事務(wù)日志備份為備份類(lèi)型,選擇已有的備份設(shè)備,和追加到媒體 單擊ok進(jìn)行備份.這樣生成了兩個(gè)新紀(jì)錄的日志備份
5.以下演示恢復(fù) 所有任務(wù) restore database 對(duì)話框中選擇時(shí)點(diǎn)還原,輸入剛才記錄的時(shí)間,單擊ok恢復(fù)
6.執(zhí)行select * from employees ,此時(shí)只能看到第一個(gè)新插入的記錄
如何在數(shù)據(jù)庫(kù)文件損壞(日志文件完好)情況下,進(jìn)行恢復(fù)
數(shù)據(jù)庫(kù)文件損壞的時(shí)候如何恢復(fù) 1 建一個(gè)測(cè)試數(shù)據(jù)庫(kù)test(數(shù)據(jù)庫(kù)類(lèi)型為完全) 2 建一個(gè)表,,插入點(diǎn)記錄 create table a(c1 varchar(2)) go insert into a values('aa') go insert into a values('bb') go 3 作完全備份,,到文件test_1.bak 4 在作一點(diǎn)修改 insert into a values('cc') go create table b(c1 int) go insert into b values(1) go insert into b values(2) go 5 shutdown 數(shù)據(jù)庫(kù)服務(wù)器 6 用ultraedit編輯數(shù)據(jù)庫(kù)文件test_data.mdf,隨便修改點(diǎn)字節(jié)內(nèi)容 7 啟動(dòng)數(shù)據(jù)庫(kù),并且運(yùn)行企業(yè)管理器,,點(diǎn)開(kāi)數(shù)據(jù)庫(kù),,看到test變成灰色,而且顯示置 疑,。 8 運(yùn)行isql -SLocalhost -Usa -P 1> backup log test TO DISK='D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\t est_2.bak' WITH NO_TRUNCATE 2>go 已處理 2 頁(yè),,這些頁(yè)屬于數(shù)據(jù)庫(kù) 'test' 的文件 'TEST_Log'(位于文件 1 上)。 BACKUP LOG 操作成功地處理了 2 頁(yè),,花費(fèi)了 0.111 秒(0.087 MB/秒),。
9 進(jìn)行恢復(fù)最老的完全備份 1> RESTORE DATABASE test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\ BACKUP\test_1.bak' WITH NORECOVERY 2> go 已處理 96 頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù) 'test' 的文件 'TEST_Data'(位于文件 1 上),。 已處理 1 頁(yè),,這些頁(yè)屬于數(shù)據(jù)庫(kù) 'test' 的文件 'TEST_Log'(位于文件 1 上)。 RESTORE DATABASE 操作成功地處理了 97 頁(yè),,花費(fèi)了 0.107 秒(7.368 MB/秒),。
10 恢復(fù)最近的日志 1> RESTORE LOG test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\BACKU P\test_2.bak' WITH RECOVERY 2> go 已處理 2 頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù) 'test' 的文件 'TEST_Log'(位于文件 1 上),。 RESTORE LOG 操作成功地處理了 2 頁(yè),,花費(fèi)了 0.056 秒(0.173 MB/秒)。
數(shù)據(jù)已經(jīng)完全恢復(fù)了,,可以使用了,。 select * from a go
select * from b go c1 ---- aa bb cc
有老的備份的話
1 backup log db TO DISK='e:\db2.bak' WITH NO_TRUNCATE
2 恢復(fù)最老的完全備份 RESTORE DATABASE db FROM DISK='e:\db1.bak' WITH NORECOVERY
3 恢復(fù)最近的日志 RESTORE LOG db FROM DISK='e:\db2.bak' WITH RECOVERY
|