完整恢復模式下執行檔案還原

iSQlServer發表於2009-01-19

檔案還原的目標是還原一個或多個損壞的檔案,而不是還原整個資料庫。SQL Server 的所有版本都支援在資料庫處於離線狀態時還原檔案(“離線頁面還原”)。SQL Server 2005 Standard、SQL Server 2005 Express Edition、SQL Server 2005 Workgroup 以及更高版本僅支援離線還原,並且將檔案還原至主檔案組時始終要求資料庫處於離線狀態。如果資料庫已經處於離線狀態,則 SQL Server 2005 Enterprise Edition 及更高版本使用離線還原。

在 SQL Server 2005 Enterprise Edition 及更高版本中,如果在檔案還原過程中資料庫處於聯機狀態,則資料庫將保持聯機狀態。資料庫處於線上狀態時還原和恢復檔案稱為“線上檔案還原”。

這些檔案還原方案如下:

離線檔案還原
在離線檔案還原中,還原已損壞的檔案或檔案組時,資料庫處於離線狀態。還原順序結束時,資料庫將聯機。

聯機檔案還原
在 SQL Server 2005 Enterprise Edition 及更高版本中,當資料庫處於聯機狀態時將自動執行聯機檔案還原。不過,任何檔案組中如果有檔案正在被還原,則該檔案組處於離線狀態。恢復離線檔案組中的所有檔案之後,該檔案組將自動變為聯機狀態。有關聯機還原的詳細資訊,請參閱執行聯機還原。
注意:
只能查詢或更新聯機的檔案組。嘗試訪問處於離線狀態的檔案組(包括其中包含正在還原或恢復的檔案的檔案組)會導致出現錯誤。
 


如果正在還原的檔案組為讀/寫檔案組,則在還原上一次資料備份或差異備份以後必須應用連續的日誌備份鏈。這樣才會使檔案組記錄到日誌檔案的當前活動日誌記錄中。恢復點通常靠近日誌的末端,但並非總是如此。

如果正在還原的檔案組為只讀檔案組,則通常不需要應用日誌備份,並且會跳過該操作。如果在檔案變成只讀後進行了備份,則該備份為要還原的最後備份。前滾在目標點停止。

 還原檔案或檔案組
從檔案備份和差異檔案備份中還原一個或多個受損檔案
建立活動事務日誌的結尾日誌備份。

如果因為日誌已損壞而無法執行此操作,則必須還原整個資料庫。有關如何備份事務日誌的資訊,請參閱建立事務日誌備份。

重要提示:
對於離線檔案還原,在檔案還原之前必須始終先進行一次結尾日誌備份。對於聯機檔案還原,在檔案還原之後必須始終先進行一次日誌備份。此日誌備份對於將檔案恢復到與資料庫的其餘部分一致的狀態至關重要。
 


從每個損壞的檔案的最新檔案備份還原相應檔案。

針對每個還原的檔案,還原最近的差異檔案備份(如果有)。

按順序還原事務日誌備份,從覆蓋最早還原檔案的備份開始,到在步驟 1 中建立的結尾日誌備份結束。

必須還原在檔案備份後建立的事務日誌備份才能使資料庫處於一致狀態。事務日誌備份可以快速前滾,因為僅應用了對還原檔案所做的更改。與還原整個資料庫相比,更好的方式是還原單個檔案,因為並不會複製並隨後前滾未損壞的檔案。但是,仍需要讀取整個日誌備份鏈。

恢復資料庫。

注意:
檔案備份可用於將資料庫還原到早期時間點。必須還原一組完整的檔案備份,然後依次將事務日誌備份還原到目標點(目標點是結束最近還原的檔案備份後的時間點),才能執行此操作。有關時點恢復的詳細資訊,請參閱將資料庫還原到備份中的某個時間點。
 


還原檔案和檔案組

如何還原檔案和檔案組 (Transact-SQL)

如何在現有檔案上還原檔案和檔案組 (Transact-SQL)

如何還原檔案和檔案組 (SQL Server Management Studio)

SqlRestore (SMO)

高階主題

控制在前滾過程中是否建立新增的檔案

還原重新命名的檔案和檔案組

 離線檔案還原的 Transact-SQL 還原順序(完整恢復模式)
檔案還原方案由複製、前滾和恢復相應資料的單一還原順序組成。

下列 Transact-SQL 程式碼顯示了檔案還原方案的還原順序中的關鍵 RESTORE 選項。將省略與此目的不相關的語法和詳細資訊。

該示例說明了如何使用 NORECOVERY 離線還原兩個輔助檔案 A 和 B。隨後,對兩個日誌備份應用 NORECOVERY,然後是結尾日誌備份(用 RECOVERY 還原)。該示例從讓檔案離線開始,說明了離線檔案還原的過程。

  
--Take the file offline.
ALTER DATABASE database_name MODIFY FILE SET OFFLINE
-- Back up the currently active transaction log.
BACKUP LOG database_name
   TO
   WITH NORECOVERY
GO
-- Restore the files.
RESTORE DATABASE database_name FILE=
   FROM
   WITH NORECOVERY
RESTORE DATABASE database_name FILE= ......
   FROM
   WITH NORECOVERY
-- Restore the log backups.
RESTORE LOG database_name FROM
   WITH NORECOVERY
RESTORE LOG database_name FROM
   WITH NORECOVERY
RESTORE LOG database_name FROM
   WITH RECOVERY

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-541432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章