Share via


將資料庫復原至特定復原點的最佳作法

顯示藍色資料庫磁碟的圖示 此主題僅與使用完整或大量記錄復原模式的資料庫有關。

本主題提出一些可將資料庫還原到特定復原點的最佳作法。

使用 STANDBY 尋找未知的時間點

有時候,您會想要將資料庫還原到特定的復原點,但是不知道目標時間、LSN 或標示的交易 (如果有的話)。有一個解決方法,就是指定 WITH STANDBY =<standby_file_name> (而非 WITH RECOVERY),累加地向前復原主要資料檔以及 (選擇性) 其他資料檔。使用 STANDBY 選項會復原唯讀存取的資料庫。這能讓您讀取資料庫並尋找所需的時間點資訊。萬一將資料庫向前復原超過目標時間點,待命檔案可讓您將復原處理序的結果恢復舊狀。如果資料庫尚未到達目標時間點,您可以使用 WITH STANDBY 還原後續的記錄備份,並且在每個 RESTORE 陳述式中指定相同的待命檔案。

識別出目標復原點之後,您可以再次向前復原至該時間點。到達目標時間點時,請使用 RECOVERY 選項還原部分資料庫。接著可以還原及復原其餘檔案 (若有的話),以便與資料庫保持一致。在還原最後一個完整記錄備份之後,請還原目標復原點之後建立的第一個記錄備份。

如需有關 STANDBY 選項的詳細資訊,請參閱<RESTORE 引數 (Transact-SQL)>。

指定還原順序中的較早時間點

還原順序包含一或多個還原作業,會在一或多個還原階段中移動資料。如果您在順序這方面提供更詳細的資訊,就比較不可能遭遇到需要從頭開始的錯誤。對於時間點還原,SQL Server Database Engine 會使用在還原順序開頭 (和期間) 所指定的資訊,來識別還原的時間點目標。如果您在順序中等待太久,順序就會失敗。您必須及早在還原順序中提供停止時間資訊,以確保還原不會超過時間點目標。

如果要在特定復原點停止,您應該在每個 RESTORE LOG 陳述式上傳達這個意圖 (使用 STOPAT、STOPBEFOREMARK 或 STOPATMARK),同時還要指定 RECOVERY 選項。一併使用 RECOVERY 和 STOPAT 選項時,如果交易記錄備份沒有包含所要求的時間 (例如,指定的時間超出交易記錄涵蓋的結束時間),則會產生警告訊息,而且資料庫停留在未復原狀態。到達復原點時,會復原資料庫,如果嘗試還原另一個記錄備份,將會失敗。在還原記錄備份時一併使用 RECOVERY 和 STOPAT 選項,可確保不會有任何記錄還原超過停止時間。

範例:時間點還原

在下列範例中,還原順序會在套用第一個記錄備份時,開始宣告要在特定時間停止的意圖。在此範例中,停止時間落在差異備份之後的第一個記錄備份上。

RESTORE DATABASE database_name FROM full_backup 
    WITH NORECOVERY;
RESTORE DATABASE database_name FROM full_differential_backup 
    WITH NORECOVERY;
RESTORE LOG database_name FROM log_backup 
    WITH STOPAT = time, RECOVERY;
RESTORE LOG database_name FROM log_backup 
    WITH STOPAT = time, RECOVERY;

指定的記錄還原成功與否取決於 <time> 是否在記錄備份所擷取的間隔內,如下表所述:

time 與記錄備份所擷取之間隔的關聯性: 作用

<time> 在間隔之前

還原失敗,未發生向前復原。

<time> 在間隔之內

順利完成最後一個還原,且已復原資料庫。

<time> 在間隔之後

順利完成向前復原,但是未復原資料庫 (因為尚未到達 <time>)。

在每個後續的 RESTORE 陳述式上宣告停止點

停止點是指定 STOPAT、STOPBEFOREMARK 或 STOPATMARK 選項的陳述式所專用。如果在 RESTORE 陳述式中省略該選項,就會還原完整備份。

隨著時間點還原順序的進行,您可以為 <time> 指定新值來變更復原點 (假設資料庫尚未復原到超過新的 <time>)。

ms191468.note(zh-tw,SQL.90).gif附註:
STOPBEFOREMARK 和 STOPATMARK 選項有 mark_namelsn_number 兩個參數。mark_name 參數會識別記錄備份中的交易標示,但只有 RESTORE LOG 陳述式支援此參數。lsn_number 參數會指定記錄序號,而且 RESTORE DATABASE 陳述式和 RESTORE LOG 陳述式中都支援此參數。

請參閱

概念

套用交易記錄備份
復原到記錄序號 (LSN)
復原到標示的交易

其他資源

RESTORE (Transact-SQL)
將資料庫還原到備份中的時間點

說明及資訊

取得 SQL Server 2005 協助