MSSQL段落還原腳本,SQLSERVER段落腳本
段落還原保持進(jìn)行檢查,以便確保數(shù)據(jù)庫(kù)在結(jié)束時(shí)將是一致的。 在還原順序結(jié)束后,如果恢復(fù)的文件有效并且與數(shù)據(jù)庫(kù)一致,則恢復(fù)的文件將直接變?yōu)槁?lián)機(jī)狀態(tài)。
段落還原適用于所有恢復(fù)模式,但在完整恢復(fù)模式和大容量日志恢復(fù)模式下比在簡(jiǎn)單恢復(fù)模式下更靈活。
所有的段落還原都從稱為“部分還原順序”的初始還原順序開(kāi)始。 部分還原順序至少還原和恢復(fù)主文件組,在簡(jiǎn)單恢復(fù)模式下還會(huì)還原和恢復(fù)所有讀/寫(xiě)文件組。 在段落還原順序中,整個(gè)數(shù)據(jù)庫(kù)都必須脫機(jī)。 隨后,數(shù)據(jù)庫(kù)將處于聯(lián)機(jī)狀態(tài),并且還原的文件組都處于可用狀態(tài)。 但是,所有未還原的文件組都將保持脫機(jī)狀態(tài),無(wú)法訪問(wèn)。 不過(guò),對(duì)于任何脫機(jī)文件組,都可以在以后通過(guò)文件還原進(jìn)行還原并進(jìn)入聯(lián)機(jī)狀態(tài)。
無(wú)論數(shù)據(jù)庫(kù)采用何種恢復(fù)模式,部分還原順序都從 RESTORE DATABASE 語(yǔ)句開(kāi)始,該語(yǔ)句將還原完整備份并指定 PARTIAL 選項(xiàng)。 PARTIAL 選項(xiàng)總是會(huì)啟動(dòng)一個(gè)新的段落還原;因此,在部分還原順序的初始語(yǔ)句中,只能指定 PARTIAL 一次。 當(dāng)部分還原順序完成并且數(shù)據(jù)庫(kù)聯(lián)機(jī)后,由于余下文件的恢復(fù)被推遲,這些文件的狀態(tài)將變?yōu)椤盎謴?fù)已掛起”。
此后,段落還原通常包括一個(gè)或多個(gè)還原順序,這些還原順序稱為“文件組還原順序”。 您可以等待執(zhí)行特定的文件組還原順序,等待的時(shí)間長(zhǎng)短由您決定。 每個(gè)文件組還原順序?qū)⒁粋€(gè)或多個(gè)脫機(jī)文件組還原并恢復(fù)到與數(shù)據(jù)庫(kù)一致的點(diǎn)。 文件組還原順序的時(shí)間安排和數(shù)量取決于您的恢復(fù)目標(biāo)、您想要還原的脫機(jī)文件組數(shù)量以及每個(gè)文件組還原順序中還原的脫機(jī)文件組的數(shù)量。
執(zhí)行段落還原的精確要求取決于數(shù)據(jù)庫(kù)的恢復(fù)模式。
下面我們來(lái)看看實(shí)例:
--段落還原:數(shù)據(jù)庫(kù)損壞范圍比較大,跨多個(gè)數(shù)據(jù)文件甚至跨文件組的時(shí)候,我們不得不恢復(fù)整個(gè)數(shù)據(jù)庫(kù)。 --這時(shí)如果數(shù)據(jù)庫(kù)特別大,數(shù)據(jù)庫(kù)恢復(fù)時(shí)間將會(huì)很長(zhǎng)。但我們可以使用SQL Server提供的段落還原,來(lái)逐步恢復(fù)數(shù)據(jù)庫(kù)。 --首先備份尾日志: BACKUP LOG [AdventureWorks] TO DISK =N'D:\BACKUP_TEST\LOG_BACK_TAIL.trn' WITH NO_TRUNCATE ,NORECOVERY,COMPRESSION,STATS=10 --部分還原主文件組PRIMARY: RESTORE DATABASE [AdventureWorks] FILEGROUP=N'PRIMARY' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH PARTIAL,NORECOVERY,STATS=10 --還原副文件組MST: RESTORE DATABASE [AdventureWorks] FILEGROUP=N'MST' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY,STATS=10 --依次還原日志: RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY,STATS=10 RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY,STATS=10 --還原尾日志并恢復(fù) RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY,STATS=10 --此時(shí)AdventureWorks數(shù)據(jù)庫(kù)中位于PRIMARY和MST文件組中的文件已經(jīng)可以訪問(wèn)。 --但是位于其他文件組如:TRN文件組中的表還不能訪問(wèn)。 --消息 8653,級(jí)別 16,狀態(tài) 1,第 2 行 --查詢處理器無(wú)法為表或視圖“****”生成計(jì)劃,因?yàn)樵摫眈v留在不處于聯(lián)機(jī)狀態(tài)的文件組中。 --接下來(lái)還原副文件組TRN: RESTORE DATABASE [AdventureWorks] FILEGROUP=N'TRN' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY,STATS=10 --如果數(shù)據(jù)庫(kù)不是企業(yè)版,以上還原將會(huì)提示“尚未備份數(shù)據(jù)庫(kù) "AdventureWorks" 的日志尾部?!?--需要再次備份一次日志尾部,意味著還原副文件組TRN的時(shí)候整個(gè)數(shù)據(jù)庫(kù)都處于正在還原狀態(tài)。所以對(duì)于非企業(yè)版而言,只能離線段落還原,個(gè)人覺(jué)得意義不是很大...... --依次還原日志: RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY,STATS=10 RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY,STATS=10 --還原尾日志并恢復(fù) RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY,STATS=10 --此時(shí)位于副文件組TRN中的表已經(jīng)可以訪問(wèn)了。 --段落還原全部完成
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。