您目前已離線,請等候您的網際網路重新連線

INF:在 SQL Server 中還原檔案和檔案群組備份

本文曾發行於 CHT281122
結論
資料庫中的檔案或檔案群組可以個別地備份和還原。這可讓您只還原損毀的檔案,而不需還原資料庫的其他部分。檔案群組備份中的檔案可以個別地還原或以群組的方式還原。本文討論一些與還原檔案和檔案群組相關的重要警告。
其他相關資訊
需要交易記錄檔備份

檔案和檔案群組備份以及還原作業,必須與交易記錄檔備份並用。在還原檔案後,您必須將建立檔案備份時所建立的交易記錄檔備份加以還原,使資料庫維持一致的狀態。如果 SQL Server 可以判斷出在建立檔案或檔案群組備份後,檔案或檔案群組並沒有被修改過,就不必套用交易記錄檔備份。
SQL Server 7.0:不能設定TruncateLogOnCheckpoint選項,且除了備份檔案和檔案群組外,還需建立交易記錄檔的備份。SQL Server 2000:如果要建立交易記錄檔備份,您必須使用「完全還原」或「大量登入復原」模式。如需復原模式的詳細資訊,請參閱《SQL Server 2000 線上叢書》的〈選取復原模式〉主題。
注意:您必須維護一整套的檔案備份及還原記錄檔備份。如果損毀的檔案沒有備份,則媒體失敗可能會造成整個資料庫無法還原。

個別檔案的還原無法在中途停止,所以您一定要在還原檔案備份前,將使用中的交易記錄檔加以備份。如果交易記錄檔損毀,或您要將整個資料庫復原到特定的時間點,則您必須在套用交易記錄檔備份前,還原整組檔案備份。如果要將交易記錄檔損毀的風險降至最低,請在容錯儲存體上找出交易記錄檔。

如果整個資料庫遺失的話
您必須擁有資料庫中每個檔案或檔案群組的備份。您還必須擁有從第一份到最後一份檔案或檔案群組備份的所有交易記錄檔備份系列。交易記錄檔備份系列的起點,必須包含第一份檔案備份建立時尚未完成的第一份交易起點。
注意:如果上述情況中有任何一項不成立,就無法還原資料庫。

檔案和檔案群組備份必須還原到符合的資料庫

檔案和檔案群組備份只能還原到它們所屬的資料庫。您無法用相同的結構和檔案名稱來建立空白的新資料庫,然後再嘗試還原單一檔案或檔案群組備份;您必須將其還原到現有的資料庫,或在其他位置執行完整的資料庫還原 (在 SQL Server 2000 中,RESTORE DATABASE 加入了新的子句,以用來進行部分的資料庫還原作業。請參閱本文稍後〈部分資料庫還原作業〉中的討論。)

注意:如果在多重檔案資料庫中遺失了一個檔案,請不要卸離然後再重新附加資料庫。相反地,應該從備份中還原需要的檔案或檔案群組。如果卸離了資料庫,則重新附加會失敗,而您則會被迫從備份還原整個資料庫。這是因為資料庫檔案會根據「通用識別元」(GUID) 來對應到資料庫。這項設計是為了保護資料庫的完整性,避免混雜不屬於資料庫的檔案,而造成嚴重的資料完整性問題。就算您可以用相同的檔名建立新的資料庫,GUID 也不會符合。

SQL Server 不允許您從包含多個檔案的資料庫附加單一檔案。附加作業會尋找屬於資料庫所有檔案,而如果它找不到具有對應 GUID 的檔案,附加作業便會失敗。同樣地,如果您用相同的檔名和檔案群組來建立空白的資料庫當做原始資料庫、取代一些檔案、然後嘗試讓 SQL 在啟動時還原資料庫,則還原會失敗 (由錯誤記錄檔所記錄)。例如:
2000-11-28 13:14:52.88 spid9    Opening file C:\MSSQL7\data\f2_Data.NDF. (開啟檔案 C:\MSSQL7\data\f2_Data.NDF。) 2000-11-28 13:14:53.01 spid9    Cannot associate files with different databases. (無法將檔案與不同的資料庫建立關聯。)2000-11-28 13:14:53.14 spid9    Device activation error. The physical file name 'C:\MSSQL7\data\f2_Data.NDF' may be incorrect. (裝置啟動錯誤。實體檔案名稱 'C:\MSSQL7\data\f2_Data.NDF' 可能錯誤。)
部分資料庫還原作業 (只限 SQL Server 2000)

新的 PARTIAL 子句已被加入 RESTORE T-SQL 陳述式,該陳述式提供將資料庫的部分還原到其他位置的機制,使損毀或遺失的資料可以複製回原始的資料庫。部分還原作業可用於資料庫檔案群組。例如,當您有一由主要檔案群組、檔案群組 A 和檔案群組 B 所組成的資料庫,而且位在檔案群組 B 上的一個資料表被意外刪除。不過,如果您有檔案群組和交易記錄檔備份可用時,則可以只還原檔案群組 B 和主要檔案群組來重新取得被刪除的資料表。具有 PARTIAL 子句的 RESTORE 陳述式則可讓您將子集還原到新的資料庫或甚至還原到不同的伺服器。之後您便可以將資料表的內容展開並重新載入原始資料庫。

主要檔案群組總是會隨著被選取來還原的檔案群組一起還原。沒有還原的檔案群組會被標示為離線而且無法存取。您無法使用檔案備份來進行部分資料庫還原。

如需如何執行部分資料庫還原的詳細資訊,請參閱《SQL Server 2000 線上叢書》的〈部分資料庫還原作業〉和〈還原資料庫〉。

請參閱下列關於檔案和檔案群組的主題:

《SQL Server 7.0 線上叢書》主題:

〈Physical Database Files and Filegroups〉
〈Using Files and Filegroups〉
〈Creating Filegroups〉
〈Creating File or Filegroup Backups〉
〈Using File or Filegroup Backups〉
〈Restoring File or Filegroup Backups〉
〈File and Filegroup Backup and Restore〉

《SQL Server 2000 線上叢書》主題:

〈實體資料庫檔案與檔案群組〉
〈使用檔案與檔案群組〉
〈建立檔案群組〉
〈使用檔案備份〉
〈檔案與檔案群組〉
〈備份與還原資料庫〉
〈部分資料庫還原作業〉
〈還原資料庫的選擇部分〉
参考
本文件是根據 Microsoft Knowledge Base 文件編號 Q281122 翻譯的。若要參考原始英文文件內容,請至以下網址:

內容

文章識別碼:281122 - 最後檢閱時間:10/26/2007 20:37:10 - 修訂: 2.2

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbproductlink kbinfo KB281122
意見反應