




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、SQL Server的還原1.差異備份的還原不備份結(jié)尾日志的情況下還原數(shù)據(jù)下面我們給出差異備份與還原的T-SQL方法,代碼如下:-創(chuàng)建備份設(shè)備EXEC sp_addumpdevice 'disk', 'MyAdvWorks_1', 'd:backupMyAdvWorks_1.bak'EXEC sp_addumpdevice 'disk', 'MyAdvWorks_diff1', 'd:backupMyAdvWorks_diff1.bak'EXEC sp_addumpdevice 'disk&
2、#39;, 'MyAdvWorks_log1', 'd:backupMyAdvWorks_log1.bak'EXEC sp_addumpdevice 'disk', 'MyAdvWorks_log2', 'd:backupMyAdvWorks_log2.bak'-數(shù)據(jù)庫備份階段- 創(chuàng)建完整備份BACKUP DATABASE MyAdvWorks TO MyAdvWorks_1 WITH INIT;GO- 在完整備份之后創(chuàng)建差異備份BACKUP DATABASE MyAdvWorks TO MyAdvWorks_di
3、ff1 WITH DIFFERENTIAL;GO-數(shù)據(jù)庫還原階段- 完整還原RESTORE DATABASE MyAdvWorks FROM MyAdvWorks_1 WITH NORECOVERY;GO- 在完整還原之后差異還原RESTORE DATABASE MyAdvWorks FROM MyAdvWorks_diff1 WITH RECOVERY;GO在執(zhí)行上述完整還原的時(shí)候,SSMS報(bào)錯(cuò),錯(cuò)誤內(nèi)容如下:Msg 3159, Level 16, State 1, Line 2The tail of the log for the database "MyAdvWorks&quo
4、t; has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.Msg 3013, Level 16, State 1, Line 2RESTORE DATABASE is terminating ab
5、normally.這是因?yàn)?,對于使用完全恢?fù)模式或大容量日志恢復(fù)模式的數(shù)據(jù)庫,在大多數(shù)情況下,您必須在還原數(shù)據(jù)庫前備份日志的結(jié)尾。 還原數(shù)據(jù)庫而不首先備份日志的末尾將導(dǎo)致錯(cuò)誤,除非 RESTORE DATABASE 語句包含 WITH REPLACE 或 WITH STOPAT 子句,此子句必須指定數(shù)據(jù)備份的結(jié)束時(shí)間或在數(shù)據(jù)備份結(jié)束之后發(fā)生的事務(wù)。 有關(guān)結(jié)尾日志備份的詳細(xì)信息,請參閱結(jié)尾日志備份 (SQL Server)。RESTORE的語法可以參考RESTORE (Transact-SQL)。為了解決上述錯(cuò)誤,我們將完整還原的TSQL語句修改如下:- 完整還原RESTORE DATABASE
6、 MyAdvWorks FROM MyAdvWorks_1 WITH REPLACE,NORECOVERY;GOREPLACE 選項(xiàng)的影響應(yīng)盡可能避免使用 REPLACE,而且在使用該選項(xiàng)之前必須仔細(xì)考慮。 還原一般會防止意外使用一個(gè)數(shù)據(jù)庫覆蓋另一個(gè)數(shù)據(jù)庫。 如果 RESTORE 語句中指定的數(shù)據(jù)庫已存在于當(dāng)前服務(wù)器上,并且指定的數(shù)據(jù)庫系列 GUID 與備份集中記錄的數(shù)據(jù)庫系列 GUID 不同,則不還原該數(shù)據(jù)庫。 這是一項(xiàng)重要的安全保護(hù)措施。使用 REPLACE 選項(xiàng)后,就會忽略還原時(shí)通常執(zhí)行的幾項(xiàng)重要安全檢查。 忽略的檢查如下:還原時(shí)使用其他數(shù)據(jù)庫的備份覆蓋現(xiàn)有數(shù)據(jù)庫。使用 REPLACE
7、選項(xiàng)后,即使指定的數(shù)據(jù)庫名稱與備份集中記錄的數(shù)據(jù)庫名稱不同,還原也允許您使用備份集中任何一個(gè)數(shù)據(jù)庫覆蓋現(xiàn)有數(shù)據(jù)庫。 這會導(dǎo)致一個(gè)數(shù)據(jù)庫意外覆蓋另一個(gè)數(shù)據(jù)庫。在沒有獲取結(jié)尾日志備份并也沒有使用 STOPAT 選項(xiàng)的情況下,使用完整恢復(fù)模式或大容量日志恢復(fù)模式對數(shù)據(jù)庫進(jìn)行還原。使用 REPLACE 選項(xiàng)后,由于沒有備份最近寫入的日志,您會丟失提交的作業(yè)。覆蓋現(xiàn)有文件。例如,可能會錯(cuò)誤地覆蓋錯(cuò)誤類型的文件,如 .xls 文件或非聯(lián)機(jī)狀態(tài)的其他數(shù)據(jù)庫正在使用的文件等。 如果覆蓋現(xiàn)有文件,則即使所還原的數(shù)據(jù)庫是完整的,也有可能丟失某些數(shù)據(jù)。RECOVERY 和 NORECOVERY 的比較仔細(xì)觀察上述完
8、整還原和差異還原的TSQL語句,我們可以看到在完整還原階段,使用了WITH NORECOVERY,而差異還原,則是使用了RECOVERY。NORECOVERY 指定不發(fā)生回滾。 從而使前滾按順序在下一條語句中繼續(xù)進(jìn)行。在這種情況下,還原順序可還原其他備份,并執(zhí)行前滾。RECOVERY(默認(rèn)值)表示,應(yīng)在完成當(dāng)前備份前滾之后執(zhí)行回滾?;謴?fù)數(shù)據(jù)庫要求要還原的整個(gè)數(shù)據(jù)集(“前滾集”)必須與數(shù)據(jù)庫一致。 如果前滾集尚未前滾到與數(shù)據(jù)庫保持一致的地步,并且指定了 RECOVERY,則數(shù)據(jù)庫引擎將發(fā)出錯(cuò)誤。因此RESTORE.WITH RECOVERY狀態(tài)就表明此時(shí)數(shù)據(jù)庫已經(jīng)處于一致性狀態(tài)了。一般都是數(shù)據(jù)庫
9、還原的最后一步才會使用RESTORE.WITH RECOVERY,其他時(shí)候都是使用RESTORE.WITH NORECOVERY。前滾與回滾的區(qū)別 前滾和回滾是 SQL Server中的兩個(gè)事務(wù)操作。前滾用于恢復(fù)之前的操作。比如:執(zhí)行一個(gè)刪除一條記錄的命令,剛剛把該操作的日志寫完(即在日志中已經(jīng)commit),并準(zhǔn)備執(zhí)行刪除操作時(shí),但是此時(shí)停電了,因此這條記錄的刪除工作沒有完成。在下次啟動SQL Server時(shí),數(shù)據(jù)庫會讀取日志最近的一個(gè)檢查點(diǎn)(checkpoint),然后重做所有已經(jīng)commit的事務(wù),這就包括之前刪除記錄的操作?;貪L用于撤銷之前的操作。比如:我要執(zhí)行一個(gè)銀行轉(zhuǎn)賬的事務(wù),從賬
10、戶A中轉(zhuǎn)出1000元到賬戶B中,在我執(zhí)行完A-1000的時(shí)候,數(shù)據(jù)庫down掉了,此時(shí)整個(gè)事務(wù)還沒有執(zhí)行完,因此事uncommitted的。所以在下次啟動SQL Server的時(shí)候,數(shù)據(jù)庫會讀取日志最近的一個(gè)檢查點(diǎn)(checkpoint),回滾所有那些uncommitted的事務(wù)。比如在這里會撤銷A-1000的操作,也就是會往A賬戶中加回去1000元。 2.事務(wù)日志的還原在數(shù)據(jù)庫中,使用最頻繁的應(yīng)該是事務(wù)日志的備份,那么下面就講講事務(wù)日志的備份與還原。TSQL代碼如下:復(fù)制代碼-開始:實(shí)驗(yàn)2:事務(wù)日志備份與-創(chuàng)建備份設(shè)備EXEC sp_addumpdevice 'disk',
11、'MyAdvWorks_1', 'd:backupMyAdvWorks_1.bak'EXEC sp_addumpdevice 'disk', 'MyAdvWorks_diff1', 'd:backupMyAdvWorks_diff1.bak'EXEC sp_addumpdevice 'disk', 'MyAdvWorks_log1', 'd:backupMyAdvWorks_log1.bak'EXEC sp_addumpdevice 'disk', &
12、#39;MyAdvWorks_log2', 'd:backupMyAdvWorks_log2.bak'-數(shù)據(jù)庫備份階段- 創(chuàng)建完整備份BACKUP DATABASE MyAdvWorks TO MyAdvWorks_1 WITH INIT;GO- 在完整備份之后創(chuàng)建差異備份BACKUP DATABASE MyAdvWorks TO MyAdvWorks_diff1 WITH DIFFERENTIAL;GO-事務(wù)日志備份BACKUP LOG MyAdvWorks TO MyAdvWorks_log1;GO-數(shù)據(jù)庫還原階段-結(jié)尾日志備份,結(jié)尾日志備份在還原階段,在resto
13、re之前先進(jìn)行結(jié)尾日志備份use masterBACKUP LOG MyAdvWorks TO MyAdvWorks_log2 WITH INIT, NORECOVERY;GO- 完整還原RESTORE DATABASE MyAdvWorks FROM MyAdvWorks_1 WITH NORECOVERY;GO- 差異還原RESTORE DATABASE MyAdvWorks FROM MyAdvWorks_diff1 WITH NORECOVERY;GO-事務(wù)日志還原RESTORE LOG MyAdvWorks FROM MyAdvWorks_log1 WITH NORECOVERY;G
14、O-結(jié)尾日志還原RESTORE LOG MyAdvWorks FROM MyAdvWorks_log2 WITH RECOVERY;GO-結(jié)束:實(shí)驗(yàn)2-復(fù)制代碼3.備份到一個(gè)邏輯設(shè)備中觀察上面的備份我們可以發(fā)現(xiàn),我們創(chuàng)建了四個(gè)邏輯備份設(shè)備,分別用戶存儲完整備份,差異備份,事務(wù)日志備份和結(jié)尾日志備份。然后恢復(fù)的時(shí)候也是指定到這四個(gè)不同的備份設(shè)備,但是當(dāng)我們只創(chuàng)建一個(gè)備份設(shè)備,并且備份到同樣一個(gè)備份設(shè)備的時(shí)候。備份工作可以完成,還原工作就不能完成了。比如如何區(qū)分差異還原和完全還原,如何區(qū)分事務(wù)日志還原和結(jié)尾日志還原。因此無法通過TSQL進(jìn)行精確還原。但是使用SSMS的話,我們可以在一個(gè)邏輯設(shè)備,并
15、且進(jìn)行精確還原。解決問題(PS:2012-7-9)今天在使用restore stopat的時(shí)候看到了restore中有file關(guān)鍵字,并且在備份的時(shí)候在message中看到了file 1等字段,所以我就想這個(gè)file是不是就是備份集呢?后來驗(yàn)證是的,因此也就找到了使用一個(gè)邏輯設(shè)備進(jìn)行備份還原的方法。代碼示例如下-開始:實(shí)驗(yàn)2:事務(wù)日志備份與-創(chuàng)建備份設(shè)備EXEC sp_addumpdevice 'disk', 'MyAdvWorks_1', 'd:backupMyAdvWorks_1.bak'-數(shù)據(jù)庫備份階段- 創(chuàng)建完整備份BACKUP DATA
16、BASE MyAdvWorks TO MyAdvWorks_1 WITH INIT;GO/*Processed 280 pages for database 'MyAdvWorks', file 'MyAdvWorks' on file 1.Processed 2 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 1.BACKUP DATABASE successfully processed 282 pages in 0.257 seconds (8.5
17、68 MB/sec).*/- 在完整備份之后創(chuàng)建差異備份BACKUP DATABASE MyAdvWorks TO MyAdvWorks_1 WITH DIFFERENTIAL;GO/*Processed 40 pages for database 'MyAdvWorks', file 'MyAdvWorks' on file 2.Processed 1 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 2.BACKUP DATABASE WITH DIF
18、FERENTIAL successfully processed 41 pages in 0.108 seconds (2.965 MB/sec).*/-事務(wù)日志備份BACKUP LOG MyAdvWorks TO MyAdvWorks_1;GO/*Processed 4 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 3.BACKUP LOG successfully processed 4 pages in 0.078 seconds (0.338 MB/sec).*/-數(shù)據(jù)庫還原
19、階段-結(jié)尾日志備份,結(jié)尾日志備份在還原階段,在restore之前先進(jìn)行結(jié)尾日志備份BACKUP LOG MyAdvWorks TO MyAdvWorks_1 WITH NORECOVERY;GO/*Processed 1 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 4.BACKUP LOG successfully processed 1 pages in 0.059 seconds (0.041 MB/sec).*/- 完整還原RESTORE DATABASE MyAdvWork
20、s FROM MyAdvWorks_1 WITH FILE=1, NORECOVERY;GO/*Processed 280 pages for database 'MyAdvWorks', file 'MyAdvWorks' on file 1.Processed 2 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 1.RESTORE DATABASE successfully processed 282 pages in 0.363 seconds (
21、6.066 MB/sec).*/- 差異還原RESTORE DATABASE MyAdvWorks FROM MyAdvWorks_1 WITH FILE=2, NORECOVERY;GO/*Processed 40 pages for database 'MyAdvWorks', file 'MyAdvWorks' on file 2.Processed 1 pages for database 'MyAdvWorks', file 'MyAdvWorks_log' on file 2.RESTORE DATABASE successfully processed 41 pages in 0.129 seconds (2.483 MB/sec).*/-事務(wù)日志還原RESTORE LOG MyAdvWorks
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古代表示年齡的詞語從小到大排序
- 公益慈善存在的問題及建議
- 公共直飲水點(diǎn)管理制度
- 公共交通服務(wù)質(zhì)量評估制度
- 工作票安規(guī)流程
- 工業(yè)產(chǎn)品外觀設(shè)計(jì)的基本原則
- 2025年養(yǎng)老保險(xiǎn)市場分析:參保人數(shù)穩(wěn)步增長 持續(xù)優(yōu)化服務(wù)保障
- 廣東省茂名市2024-2025學(xué)年高三上學(xué)期第一次綜合測試數(shù)學(xué)試題(解析版)
- 湛江降水井施工方案
- 寧波耐堿磚施工方案
- 中醫(yī)理療免責(zé)協(xié)議書
- 精神科病人安全與治療管理制度
- 廚房食材收貨流程
- 品牌服飾行業(yè)快速消費(fèi)品庫存管理優(yōu)化方案
- 貝雷橋吊裝專項(xiàng)方案(危大工程吊裝方案)
- 昌江縣燕窩嶺水泥用石灰?guī)r礦礦產(chǎn)資源開發(fā)利用與保護(hù)方案
- 2024年《認(rèn)證基礎(chǔ)》真題及答案
- ZHF形勢與政策(2024年秋)-考試題庫
- 淤地壩應(yīng)急處置
- 鸚鵡介紹課件教學(xué)課件
- 汽車檢測技術(shù)課件 任務(wù)一 認(rèn)識汽車檢測站
評論
0/150
提交評論