執行檔案還原 (完整復原模式)
更新: 2006 年 7 月 17 日
本主題僅與在完整或大量載入復原模式下,包含多個檔案或檔案群組的資料庫有關。
檔案還原的目的是還原一或多個損毀的檔案,而不還原整個資料庫。SQL Server 的所有版本全都支援在資料庫離線時還原檔案 (「離線分頁還原」)。SQL Server 2005 Standard Edition、SQL Server 2005 Express Edition 和 SQL Server 2005 Workgroup Edition 僅支援離線還原,而且將檔案還原至主要檔案群組時,資料庫一定要離線。如果資料庫已經離線,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 <tail_log_backup>
WITH NORECOVERY
GO
-- Restore the files.
RESTORE DATABASE database_name FILE=<name>
FROM <file_backup_of_file_A>
WITH NORECOVERY
RESTORE DATABASE database_name FILE=<name> ......
FROM <file_backup_of_file_B>
WITH NORECOVERY
-- Restore the log backups.
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY
RESTORE LOG database_name FROM <tail_log_backup>
WITH RECOVERY
範例
請參閱
概念
差異備份和新檔案
在檔案群組中放置索引
差異檔案備份
瞭解在 SQL Server 中還原和復原備份的運作方式
利用檔案及檔案群組來管理資料庫的擴展
使用檔案與檔案群組
套用交易記錄備份
備份概觀 (SQL Server)
SQL Server 中的還原和復原概觀
其他資源
設計檔案及檔案群組
相關功能的備份與還原注意事項
RESTORE (Transact-SQL)
將資料庫還原到備份中的時間點
使用 SQL Server 資料庫的還原順序
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|