範例:資料庫分段還原 (完整復原模式)

適用於:SQL Server

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

在此範例中,資料庫 adb 是在損毀之後還原至新的電腦。 資料庫使用完整復原模式,因此開始還原之前,必須對資料庫進行結尾記錄備份。 在損毀之前,所有檔案群組都在線上。 檔案群組 B 是唯讀的。 所有的次要檔案群組都必須還原,但是會依照重要性的高低順序來進行: A (最高)、 C,最後是 B。 這個範例有四個記錄備份,包括結尾記錄備份。

尾端記錄備份

還原資料庫之前,資料庫管理員必須備份記錄的結尾。 因為資料庫已損毀,必須使用 NO_TRUNCATE 選項來建立結尾記錄備份:

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE  

結尾記錄備份是下列還原順序中套用的最後一個備份。

還原順序

注意

線上還原順序的語法和離線還原順序的語法相同。

  1. 部分還原主要與次要檔案群組 A。

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1   
       WITH PARTIAL, NORECOVERY  
    RESTORE DATABASE adb FILEGROUP='A' FROM backup2   
       WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    
  2. 線上還原檔案群組 C。

    此時,主要檔案群組和次要檔案群組 A 在線上。 檔案群組 B 與 C 的所有檔案已暫止復原,且檔案群組處於離線。

    步驟 1 中最後一個 RESTORE LOG 陳述式的訊息指出,因為檔案群組 C 無法使用,涉及該檔案群組的交易復原作業已延後。 一般作業可繼續進行,但在回復作業完成之前,這些交易會維持鎖定,且不會截斷記錄。

    在第二個還原順序中,資料庫管理員會還原檔案群組 C:

    RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    

    此時,主要與次要檔案群組 A 和 C 會在線上。 檔案群組 B 中的檔案處於復原擱置狀態,且檔案群組處於離線狀態。 已解決延後交易,並進行交易記錄截斷。

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

在第三個還原順序中,資料庫管理員會還原檔案群組 B。 在檔案群組變成唯讀之後會進行檔案群組 B 的備份,因此不需要在復原期間將它向前復原。

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

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

其他範例