差異資料庫備份
「差異資料庫備份」只會記錄前次完整資料庫備份之後又變更過的資料。這個完整備份稱為「差異基底」。差異資料庫備份比完整資料庫備份更小且更快。這可以節省備份的時間,但是相對地增加了複雜性。若為大型資料庫,差異備份可以在較資料庫備份為短的時間內進行。這樣會降低工作損失的風險。
如果資料庫某個子集的修改比資料庫的其餘部分更加頻繁,差異資料庫備份就特別有用。在這些情形下,差異資料庫備份可以讓您經常備份,而避免完整資料庫備份的負擔。
[!附註]
即使在建立差異基底時,其中一個檔案群組是唯讀,讀取/寫入資料庫的差異備份仍會正確運作。如同讀取/寫入資料庫的任何差異備份一樣,Database Engine 會將差異基底記錄在主要檔案中。
排程差異資料庫備份的最佳作法
對於大型資料庫,完整資料庫備份需要大量的磁碟空間。若要節省時間和磁碟空間,可以在完整資料庫備份之後,建立一系列的差異備份。每個後繼的差異資料庫備份會大於其前一個備份,所需的備份時間、空間和還原時間也會更多。因此,我們建議您適時定期地進行新的完整備份以提供新的差異基底。
使用差異資料庫備份時,建議您最好遵循下列方針:
在完整資料庫備份之後,定期排程差異資料庫備份。例如,您可以每隔四個小時進行一次差異資料庫備份,或者在活動頻繁的系統中更密集地進行。
按一定的間隔排程新的完整資料庫備份,確保差異備份不會變得太大。例如,您可以一週備份一次完整資料庫。
[!附註]
在完整復原模式下,您也必須排程交易記錄備份。我們建議您較差異資料庫備份更為頻繁地進行記錄備份。如需詳細資訊,請參閱<使用交易記錄備份>。
差異資料庫備份策略 (簡單復原模式)
在簡單復原模式之下,備份之間損失工作的風險會隨時間更增加。下圖說明使用由差異資料庫備份補充的資料庫備份來減輕工作損失風險的備份策略。在第一次資料庫備份之後,連續建立了三次差異備份。第三個差異備份已經大到下一次備份時必須進行資料庫備份。這個資料庫備份會建立新的差異基底。
差異資料庫備份策略 (完整復原模式)
使用完整和大量記錄復原模式,差異資料庫備份便可在還原資料庫時,將向前復原交易記錄備份所需的時間縮到最短。差異資料庫備份會將資料庫還原到差異備份完成的時刻。
下圖顯示以差異資料庫備份補充完整資料庫備份的備份策略,同時也顯示一系列例行記錄備份。交易記錄備份的存在,使潛在的工作損失風險縮限於最近一次記錄備份之後的時間。在第一次資料庫備份之後,連續建立了三次差異備份。第三個差異備份已經大到下一次備份時必須進行完整資料庫備份。這個完整資料庫備份會建立新的差異基底。
上圖中第一次資料庫備份之前,資料庫承受了潛在工作損失的風險 (從時間 t0 到時間 t1)。此後,例行的記錄備份使工作損失風險降到可能遺失最後一次記錄備份 (上圖的建立時間為 t14) 之後所做的變更。如果磁碟發生故障,資料庫管理員應該立即嘗試備份使用中的記錄 (記錄結尾)。如果這個「結尾記錄備份」成功,資料庫可還原至失敗點。
[!附註]
交易記錄備份能讓您復原至失敗點。如需詳細資訊,請參閱<將資料庫還原到備份中的時間點>。
建立和排程差異資料庫備份
建立差異資料庫備份所需的 BACKUP 語法:
BACKUP DATABASE <database_name> TO <<backup_device>> WITH DIFFERENTIAL
建立差異資料庫備份
[!附註]
如需有關如何使用差異備份的詳細資訊 (包括最佳作法),請參閱<使用差異備份>。
排程備份作業
使用差異資料庫備份來還原資料庫
還原差異備份之前,必須先還原其基底。如果對指定的基底執行一連串的完整差異備份,則還原時只需要還原基底和最新的差異備份即可。如需詳細資訊,請參閱<執行完整資料庫還原 (簡單復原模式)>或<執行完整的資料庫還原 (完整復原模式)>。
重要事項 |
---|
我們建議,只要您保留基底,就請保留所有建立的差異備份。即使最新的差異備份損毀了,您仍可以使用先前的差異備份來還原資料庫。 |