範例:僅限於部份檔案群組的分次還原 (完整復原模式)

本主題是關於在完整復原模式下,包含多個檔案或檔案群組的 SQL Server 資料庫。

分次還原順序會在檔案群組層級,分階段地還原與復原資料庫,先從主要檔案群組開始,然後才是所有的讀取/寫入次要檔案群組。

這個範例當中,使用完整復原模式,名為 adb 的資料庫包含三個檔案群組。檔案群組 A 可讀取/寫入,而檔案群組 B 和檔案群組 C 則是唯讀的。所有的檔案群組一開始都是在線上。

資料庫 adb 的主要檔案群組與檔案群組 B 似乎已損毀。主要檔案群組並不大,很快就可還原。資料庫管理員決定使用分次還原順序來加以還原。首先,還原主要檔案群組及後續的交易記錄檔,並復原資料庫。

完整未受損的檔案群組 A 和 C 中含有重要資料。因此,下一步便是復原這兩個檔案群組,讓它們儘快恢復上線。最後則是還原並復原已損毀的次要檔案群組 B。

還原順序:

  1. 為資料庫 adb 建立結尾記錄備份。您必須執行此步驟,才能讓完整的檔案群組 A 和 C 利用資料庫還原點保持在最新狀態。

    BACKUP LOG adb TO tailLogBackup WITH NORECOVERY
    
  2. 主要檔案群組的部分還原。

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup 
    WITH PARTIAL, NORECOVERY
    RESTORE LOG adb FROM backup1 WITH NORECOVERY
    RESTORE LOG adb FROM backup2 WITH NORECOVERY
    RESTORE LOG adb FROM backup3 WITH NORECOVERY
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
    

    此時,主要檔案群組為線上狀態。檔案群組 A、B 和 C 中的所有檔案皆為復原暫止狀態,且檔案群組已離線。

  3. 線上還原檔案群組 A 和 C。

    由於這些檔案群組的資料並未損毀,因此它們不需要從備份還原,但必須進行復原才能回到線上。

    資料庫管理員立即復原 A 和 C。

    RESTORE DATABASE adb FILEGROUP='A', FILEGROUP='C' WITH RECOVERY
    

    此時,主要與次要檔案群組 A 和 C 會在線上。檔案群組 B 裡的檔案會保持復原暫止,而檔案群組為離線。

  4. 線上還原檔案群組 B。

    檔案群組 B 中的檔案,可在此後的任何時間進行還原。

    [!附註]

    檔案群組 B 的備份是在檔案群組變成唯讀之後進行的,因此這些檔案不需向前復原。

    RESTORE DATABASE adb FILEGROUP='B' FROM backup WITH RECOVERY
    

    所有檔案群組現在都已在線上。