還原重新命名的檔案與檔案群組

檔案或檔案群組的名稱可加以變更,甚至在其他處重複使用。SQL Server Database Engine 會在內部以全域唯一識別碼 (GUID) 來追蹤檔案和檔案群組。在大部分情況下,還原作業可辨別名稱已變更,且作業會正確處理變更。

還原如何處理已變更的名稱,將視檔案是離線或線上還原而定。

  • 在離線還原期間,無法存取資料庫目錄,包括目前的檔案群組清單。還原會比對給定的名稱與備份中的檔案或檔案群組名稱。因此,如果在建立備份之後重複使用過名稱,則可能會還原錯誤的檔案。不過,還原稍後會卸除資料庫中未出現在復原點上的任何檔案。這會導致其他的還原和向前復原活動,但資料庫正確。因為還原事先並不知道復原點,無法在未知點上預測資料庫中存在哪些檔案,所以無法避免此額外的工作。

  • 在線上還原期間,可以存取資料庫目錄。如果在還原時指定新的檔案或檔案群組名稱,Database Engine 會從資料庫目錄中取得對應的 GUID,並還原具有該 GUID 的檔案或檔案群組 (若備份中存在該 GUID)。

    如果指定舊名稱,則不會在資料庫目錄中。如果 GUID 符合備份中目前檔案或檔案群組的 GUID,Database Engine 會從備份中還原該檔案或檔案群組。

    如果備份中的 GUID 不符合任何目前的檔案或檔案群組,則會發生錯誤。

還原如何處理重複使用的檔案或檔案群組名稱

卸除的檔案或檔案群組名稱,稍後可重複使用;例如,新檔案可能會重複使用先前檔案群組的名稱。這就像重新命名檔案或檔案群組一樣。不過在重複使用名稱時,相同名稱在不同時期會參考不同的物件。

還原作業會自動處理檔案和檔案群組的數目與名稱變更。為了簡化還原程序,最佳作法是當新的或變更的檔案與檔案群組變更之後,立即執行完整資料庫備份。

如果已重新命名檔案,且在上次備份之後已重複使用該名稱,Database Engine 會根據資料庫目錄是否可存取和是否包含此名稱來決定如何處理:

  • 如果可存取資料庫目錄,且名稱也在目錄中,Database Engine 會判斷對應檔案或檔案群組的 GUID,並從備份中還原具有該 GUID 的檔案或檔案群組。如果名稱不符合其中一個目前的檔案或檔案群組,則會發生錯誤。

  • 如果無法存取資料庫目錄 (因為正在對資料庫執行離線還原),Database Engine 會從備份中的資訊來判斷要還原的物件 (如本主題前面所述)。

在您執行記錄備份之前,Database Engine 可能會阻止您重複使用名稱。這種情況下,會顯示錯誤。