段落還原保持進行檢查,以便確保資料庫在結束時將是一致的。 在還原順序結束後,如果恢復的檔案有效並且與資料庫一致,則恢復的檔案將直接變為聯機狀態。
段落還原適用於所有恢復模式,但在完整恢復模式和大容量日誌恢復模式下比在簡單恢復模式下更靈活。
所有的段落還原都從稱為「部分還原順序」的初始還原順序開始。 部分還原順序至少還原和恢復主檔案組,在簡單恢復模式下還會還原和恢復所有讀/寫檔案組。 在段落還原順序中,整個資料庫都必須離線。 隨後,資料庫將處於聯機狀態,並且還原的檔案組都處於可用狀態。 但是,所有未還原的檔案組都將保持離線狀態,無法訪問。 不過,對於任何離線檔案組,都可以在以後通過檔案還原進行還原並進入聯機狀態。
無論資料庫採用何種恢復模式,部分還原順序程式設計客棧都從 r程式設計客棧estore database 語句開始,該語句將還原完整備份並指定 partial 選項。 partial 選項總是會啟動乙個新的段落還原;因此,在部分還原順序的初始語句中,只能指定 partial 一次。 當部分還原順序完成並且資料庫聯機後,由於餘下檔案的恢復被推遲,這些檔案的狀態將變為「恢復已掛起」。
此後,段落還原通常包括乙個或多個還原順序,這些還原順序稱為「檔案組還原順序」。 您可以等待執行特定的檔案組還原順序,等待的時間長短由您決定。 每個檔案組還原順序將乙個或多個離線檔案組還原並恢復到與資料庫一致的點。 檔案組還原順序的時間安排和數量取決於您的恢復目標、您想要還原的離線檔案組數量以及每個檔案組還原順序中還原的離線檔案組的數量。
執行段落還原的精確要求取決於資料庫的恢復模式。
下面我們來看看例項:
--段落還原:資料庫損壞範圍比較大,跨多個資料檔案甚至跨檔案組的時候,我們不得不恢復整個資料庫。
--這時如果資料庫特別大,資料庫恢復時間將會很長。但我們可以使用sql server提供的段落還原,來逐步恢復資料庫。
--首先備份尾日誌:
backup log [adventurewo 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 databawww.cppcns.comse [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
--還原尾日誌並恢復
restore log [adventureworks] from disk=n'd:\backup_test\log_back_tail.trn' with recovery,stats=10
--此時adventureworks資料庫中位於primary和mst檔案組中的檔案已經可以訪問。
--但是位於其他檔案組如:trn檔案組中的表還不能訪問。
--訊息 8653,級別 16,狀態 1,第 2 行
--查詢處理器無法為表或檢視「****」生成計畫,因為該錶駐留在不處於聯機狀態的檔案組中。
--接下來還原副檔案組trn:
restore database [adventureworks] filegroup=n'trn' from disk=n'd:\backup_test\ad_full.bak' with norecovery,stats=10
--如果資料庫不是企業版,以上還原將會提示「尚未備份資料庫 "adventureworkswww.cppcns.com" 的日誌尾部。」
--需要再次備份一次日誌尾部,意味著還原副檔案組trn的時候整個資料庫都處於正在還原狀態。所以對於非企業版而言,只能離線段落還原,個人覺得意義不是很大......
--依次還原日誌:
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
--還原尾日誌並恢復
restore log [adventureworks] from disk=n'd:\backup_test\log_back_tail.trn' with recovery,stats=10
--此時位於副檔案組trn中的表已經可以訪問了。
--段落還原全部完成
本文標題: mssql段落還原指令碼,sqlserver段落指令碼
本文位址:
MS SQL 只有MDF檔案進行還原
直接用命令執行即可,不同版本的資料庫也可以執行的。舊的資料庫檔案 lighthousetest.mdf 新的資料庫名稱 lighthouse exec sp attach db 新的資料庫名稱 mdf檔案路徑 eg exec sp attach db lighthouse,d database li...
msSQL資料庫備份還原小結
mssql自帶了乙個樣例資料庫pubs,就拿這個舉例好了。首先,來一次完全備份。對於資料量很大的資料庫,這樣的操作當然很費時間。所以我們採用每天凌晨4點一次完全備份,每個小時乙個差異備份,每分鐘一次日誌備份。這樣資料的丟失率就是一分鐘了。在企業管理器中右擊要備份的資料庫pubs 所有任務 備份資料庫...
MSSQL脫褲ASP指令碼
將單個表的資料以文字形式,寫到當前指令碼所在目錄下,並以指定分隔符分隔。不包含表結構 示例 id,username,password 10,zhangsan,123 11,lisi,123 說明 1.功能單一,為分隔符,改為 便於匯入資料庫 2.當資料量比較大的時候,適當修改此處的值server.s...