--段落還原:數(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=10RESTORE 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=10RESTORE 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)了。--段落還原全部完成
新聞熱點(diǎn)
疑難解答
圖片精選