範例:線上還原讀取/寫入檔案 (完整復原模式)

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

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

檔案群組 A 內的 a1 檔案已經損毀,資料庫管理員決定在資料庫仍然在線上時還原該檔案。

[!附註]

在簡單復原模式下,不允許線上還原讀取/寫入資料。

還原順序

  1. 線上還原檔案 a1。

    RESTORE DATABASE adb FILE='a1' FROM backup 
    WITH NORECOVERY;
    

    此時,檔案 a1 處於 RESTORING 狀態,而檔案群組 A 已離線。

  2. 還原該檔案之後,資料庫管理員會進行新的記錄備份,以確保能擷取到檔案離線的時間點。

    BACKUP LOG adb TO log_backup3; 
    
  3. 線上還原記錄備份。

    管理員會還原已還原之檔案備份後進行的所有記錄備份,並在最新的記錄備份 (步驟 2 所建立的 log_backup3) 處結束。還原最後一個備份之後,資料庫就可以復原。

    RESTORE LOG adb FROM log_backup1 WITH NORECOVERY;
    RESTORE LOG adb FROM log_backup2 WITH NORECOVERY;
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY;
    RESTORE LOG adb WITH RECOVERY;
    

    檔案 a1 現在已經在線上。