在完整復原模式下備份

完整復原模式會使用記錄備份以防止在大部分的故障狀況中損失資料,因此需要備份和還原交易記錄 (「記錄備份」(Log Backup))。使用記錄備份的優點是可讓您將資料庫還原至記錄備份內包含的任何時間點 (「時間點復原」(Point-in-time Recovery))。您可以使用一系列的記錄備份,將資料庫向前復原至其中一個記錄備份所包含的任何時間點。請注意,您可以利用相同資料的一系列差異備份來補充每個完整備份,以縮短還原時間。

假使您可以在損毀發生之後備份使用中的記錄,您就可以將資料庫還原至失敗點,而不會遺失任何資料。使用記錄備份的缺點是需要儲存空間,而且會增加還原的時間和複雜性。

[!附註]

如果使用記錄備份的優點不足以涵蓋管理備份的成本,我們建議您最好使用簡單復原模式

如果是定期使用完整復原模式的資料庫,您可以暫時使用大量記錄復原模式,讓特定的大量作業最佳化。大量記錄復原模式會帶來許多限制,因此不適合做為每日的例行作業。如需詳細資訊,請參閱<大量記錄復原模式下的備份>。

範例備份策略

下圖顯示在完整復原模式下最簡單的備份策略。在此圖中,已進行完整資料庫備份 (Db_1) 和兩個例行記錄備份 (Log_1 和 Log_2)。在 Log_2 記錄備份之後,資料庫的資料突然遺失了。在還原這三個備份之前,資料庫管理員必須先備份使用中的記錄 (記錄結尾)。然後,資料庫管理員會還原 Db_1、Log_1 和 Log_2,而不復原資料庫。然後資料庫管理員會還原和復原結尾記錄備份 (結尾)。這樣會將資料庫復原至失敗點,進而復原所有的資料。

正在還原完整復原模式資料庫

如需詳細資訊,請參閱<完整資料庫備份>和<使用交易記錄備份>。

將工作損失風險降至最低

在第一次完整資料庫備份完成及定期記錄備份開始之後,潛在的工作損失風險將縮小為資料庫損毀到最近一次定期記錄備份之間的時間。因此,建議您經常建立記錄備份,使工作損失風險維持在商務需求所要求的範圍內。

下圖顯示利用差異資料庫備份來補充完整資料庫備份和記錄備份的備份策略。交易記錄備份會使潛在的工作損失風險縮限於最近一次記錄備份 (t14) 之後的時間。採用一系列三個差異備份時,可減少失敗時進行還原所需的交易記錄數目。第三個差異備份已經大到下一次備份時必須進行完整資料庫備份。這會建立新的差異基底。

完整及差異資料庫備份與記錄備份

上圖中第一次資料庫備份之前,資料庫承受了潛在工作損失的風險 (從時間 t0 到時間 t1)。此後,例行的記錄備份使工作損失風險降到可能遺失最後一次記錄備份 (上圖的建立時間為 t14) 之後所做的變更。如果在最新的備份之後發生失敗,資料庫管理員會嘗試備份記錄的結尾 (尚未備份的記錄)。如果記錄結尾備份成功,資料庫管理員可以將資料庫還原至失敗點,以避免任何工作損失。

如需有關差異資料庫備份的詳細資訊,請參閱<使用差異備份>。

大量作業與完整復原模式

完整復原模式可透過記錄所有作業、併入大量作業 (例如 SELECT INTO、CREATE INDEX) 和大量載入資料,讓您將資料庫復原到失敗點或更早的時間點 (稱為「時間點還原」)。

當大量載入資料和增加效能的需求勝過可能遺失資料的風險時,完整復原模式的許多使用者都會暫時切換到大量記錄復原模式。大量記錄復原模式以盡量從簡的方式記錄大量作業,然而會完整地記錄其他交易。如需有關大量記錄復原模式的詳細資訊,請參閱<大量記錄復原模式下的備份>。

[!附註]

在 SQL Server 2005 及更新的版本中,永遠都不需要 sp_dboptionselect into/bulkcopy 資料庫選項,而且也應該避免使用這個選項。您應該改用 ALTER DATABASE。未來的 SQL Server 版本將移除這個 sp_dboption 預存程序。

使用備份來還原資料庫

還原資料庫時需要一連串的還原作業 (「還原順序」)。還原順序開始至少會還原一個完整備份,然後選擇性地執行對應的差異備份。

每個完整和差異備份都包含恰好足夠讓您用來復原資料庫的記錄。不過,您通常會想要依序還原後續的記錄備份,最後再還原結尾記錄備份 (如果有的話)。因此,在開始還原資料庫之前,您必須先建立結尾記錄備份。結尾記錄備份可讓您將資料庫還原直到失敗點。最後一個記錄備份已還原時,您必須復原資料庫。

[!附註]

在完整復原模式或大量記錄復原模式下,SQL Server 2005 Enterprise Edition 及更新的版本會在資料庫仍在線上時支援檔案及/或頁面的還原。這稱為「線上還原」。不論資料庫是離線或在線上,還原檔案或頁面的 RESTORE 語法都相同。

如需詳細資訊,請參閱<還原和復原概觀 (SQL Server)>。