SQL Server 備份簡述

SQL Server支持多種不同類型的備份,但最常用的還是完整備份、差異備份和事務日誌備份。至於說到底能使用哪一種備份還要參考數據庫的恢復模式,如簡單恢復模式就不支持事務日誌備份。

完整備份

備份指定數據庫中的所有數據,數據量比較大的時候,備份和恢復的成本會比較高,其過程是:首先會鎖定數據庫,阻塞所有事務,立即在事務日誌中寫入一個標誌1,並迅速釋放數據庫鎖,這個過程是很快的。

然後提取數據文件中所有包含數據的頁面寫入到備份設備中。不包含數據的頁面會被略過。

然後,再一次鎖定數據庫,阻塞所有事務,在事務日誌中寫一個標誌2,並迅速釋放數據庫鎖。

最後再提取標誌1和2之間的事務,並寫入數據到備份設備中。

如下圖所示:

image

在此圖中,D表示有數據的頁面,L是日誌文件,如果使用的是完整備份的話,首先是打個標記1,然後將所有的數據頁面備份到設備中,然後再打個標記2,將標記1和標記2中間的日誌文件所產生的數據再添加到備份設備中。

差異備份

差異備份比較好理解,它是相對於完整備份來說,備份的是完整備份之後發生更改的內容,但僅限完整備份,跟上一次的差異備份沒有任何關係。差異備份的大小取決於自建立差異基準後更改的數據量。通常,差異基準越舊,新的差異備份就越大。特定的差異備份將在創建備份時捕獲已更改的區的狀態。如果創建一系列差異備份,則頻繁更新的區可能在每個差異中包含不同的數據。當差異備份的大小增大時,還原差異備份會顯著延長還原數據庫所需的時間。因此,建議按設定的間隔執行新的完整備份,以便爲數據建立新的差異基準。例如,您可以每週執行一次整個數據庫的完整備份(即完整數據庫備份),然後在該周內執行一系列常規的差異數據庫備份。

  我們都知道數據庫中的數據頁是8KB的大小,8個連接數據頁稱爲一個區。然後,還有一個映射表稱爲,差異位圖來映射到所有的數據區。當我們做了一個基準,即完整備份之後,相應映射表中的位置就會被清零,如果發生了數據改變,相應位置會變爲1。如下圖所示:

image

該圖顯示了二十四個數據區,其中的六個已發生更改。差異備份只包含這六個數據區。差異備份操作取決於位圖頁,此頁針對每個區包含一位。

事務日誌備份

事務日誌,用於記錄數據庫中的所有事務操作以及每個事務對數據庫所做的修改。但一個數據庫能否進行事務日誌備份,取決於數據庫的恢復模式,如果是完整恢復模式或者是大容量日誌恢復模式則可以對數據庫進行事務日誌備份。

如果是完整恢復模式,則在進行事務日誌備份時,系統會掃描所有的虛擬日誌文件(VLF),從上一次事務日誌備份後被新增的日誌記錄。並將這些日誌記錄添加到備份文件中。

與完整恢復模式(完全記錄所有事務)相比,大容量日誌恢復模式只對大容量操作進行最小記錄(儘管會完全記錄其他事務)。大容量日誌恢復模式保護大容量操作不受媒體故障的危害,提供最佳性能並佔用最小日誌空間。也就是說大容量日誌恢復模式將阻止捕獲對每個事務逐一所做的更改,只記錄大容量操作所更改的事務和數據,則無法還原到該日誌備份中的時點,而只能還原整個日誌備份。

大容量日誌備份恢復下的事務日誌備份原理也需要用到一個位圖頁,這點和差異備份有點類似。

爲跟蹤數據頁,日誌備份操作依賴於位圖頁的大容量更改,位圖頁針對每個區包含一位。在經過一次日誌備份後,數據頁區所對應的位圖頁中的位置會清零。然後,對於自上次日誌備份後由大容量日誌操作所更新的每個區,在位圖中將每個位都設置爲 1。數據區將複製到日誌中,後跟日誌數據。下圖顯示了日誌備份的構造方式。

image

 

以上是SQL Server較爲常用的三種備份。

僅複製備份選項

在SQL Server 2005及以後的版本中,多出一個僅複製備份選項,這個選項什麼時候可以用到?用微軟的話來說:

僅複製備份”是獨立於常規 SQL Server 備份序列的 SQL Server 備份。 通常,進行備份會更改數據庫並影響其後備份的還原方式。 但是,有時在不影響數據庫總體備份和還原過程的情況下,爲特殊目的而進行備份還是有用的。 僅複製備份就是用於此目的。

僅複製備份是獨立於SQL Server備份的正常序列的,也就是說如果我們現在使用僅複製備份對數據庫做了一次完整備份,是不對生成一個新的基準的,不會影響到差異備份的,差異備份所認爲的基準還是上一次完整備份;如果在進行完整備份時選擇了僅複製備份,則不論是此次的完整備份還是日誌備份,事務日誌是不會被截斷的,也就是不會影響到原有的日誌鏈。因此,現在AlwaysOn輔助節點上,可以使用僅複製備份選項來對數據庫進行完整備份和事務日誌備份,而不去影響原有的日誌鏈。

image

僅複製備份適用於完整備份和日誌備份,但不適用於差異備份。本文中的詳細內容,可以參考:https://msdn.microsoft.com/zh-cn/library/ms187048(v=sql.105).aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章