SQL Server 2008備份策略設計上(五)

不管是數據庫Dev仍是DBA,都但願關鍵業務數據庫的完整性和可用性能獲得保障,數據庫備份是一種不錯的選擇。SQL Server 2008支持不一樣應用層次的多種備份方式,爲咱們的業務數據提供了強有力的保障,這一篇博文就來探討如何在SQL Server 2008下設計合理的備份策略。
爲了設計合理的備份策略,首先要熟悉SQL Server 2008都支持哪些恢復模式,它支持的恢復模式有以下:
 
翻譯後以下:
 
 
簡單恢復模式:
在簡單恢復模式下,只支持完整備份和差別備份,不支持事務日誌備份。在簡單恢復模式下還原數據庫時只能還原到上一次數據庫備份的數據,而上一次數據庫備份之後的數據將沒法進行還原,在發生災難時,這些上一次數據庫備份之後的數據必須重作。因此簡單恢復模式並不適用於生產系統。另外在簡單恢復模式下,因爲事務日誌會被截斷,因此日誌文件不會一直膨脹,很是小。
完整恢復模式:
完整恢復模式是微軟建議在生產環境中使用的恢復模式。正常狀況下(即能備份日誌尾部)發生災難進行還原數據庫時,不會丟失任務數據。可是若是日誌尾部損壞,則必須重作自上一第二天志備份或差別備份等以後所作的更改。在完整恢復模式下,全部的操做都會在日誌中完整地記錄下來。
大容量日誌恢復模式:
大容量日誌恢復模式簡單地記錄了大多數大容量操做日誌(Bulk INSERT,CREATE INDEX,SELECT INTO),而不是記錄所有大容量操做日誌,因此這些大容量操做比在完整恢復模式下執行要快不少,同時大容量日誌恢復模式完整記錄了其餘事務日誌。因此大容量日誌恢復模式是一種特殊用途的恢復模式,只應用於提升某些大規模大容量操做(如大量數據的大容量導入)的性能。完整恢復模式下有關備份的許多說明也適用於大容量日誌恢復模式。
若是在最新日誌備份後發生日誌損壞或執行大容量日誌記錄操做,則必須重作自該上次備份以後所作的更改,不然不丟失任何數據。
另外設計合理的備份策略,還要熟悉SQL Server 2008都支持哪些備份類型,它支持的備份類型有以下:
 
 
翻譯後以下:
 
 
完整數據庫備份:
完整備份會備份數據庫中的全部數據,以及能夠恢復這些數據的足夠的日誌。它爲差別、事務日誌備份建立基準備份。在數據庫底層上,完整備份其實是把全部頁(page)複製到備份設備上。
差別數據庫備份:
差別備份僅備份自上次完整備份後發生更改的數據。一般,創建基準備份以後執行的差別備份比基準備份更小,建立速度也更快。所以,使用差別備份能夠加快進行頻繁備份的速度,從而下降數據丟失的風險。一般,一個差別基準會由若干個相繼的差別備份使用。還原時,首先還原完整備份,而後再還原最後一個的差別備份。
業務數據庫運行一段時間後,隨着數據庫的更新,包含在差別備份中的數據量會增長。這使得建立和還原差別備份的速度變慢。所以,必須從新建立一個完整備份,爲另外一個系列的差別備份提供新的差別基準。
一樣,差別備份和完整備份相似,也會備份恢復數據的足夠日誌,這是由數據庫系統控制的。
在數據庫底層上,差別備份是備份自上次完整備份之後全部修改的區(extent)
部分備份:
部分備份與完整數據庫備份相似,可是部分備份不包含全部文件組。部分備份包含主文件組、每一個讀寫文件組以及任何指定(可選)的只讀文件中的全部數據。部分備份在但願不包括只讀文件組時很是有用。只讀數據庫的部分備份僅包含主文件組。
部分備份功能從SQL Server 2005開始引入。
建立部分備份時,必須在BACKUP 語句中指定 READ_WRITE_FILEGROUPS 選項。也能夠指定任何只讀文件或文件組,以便將其包括在部分備份中。
事務日誌備份:
在完整恢復模式或大容量日誌恢復模式下,須要按期進行事務日誌備份。每一個日誌備份都包括建立備份時處於活動狀態的部分事務日誌,以及先前日誌備份中未備份的全部日誌記錄。在建立第一個事務日誌備份以前,必須先建立完整備份(如完整數據庫備份或一組文件備份中的第一個完整備份)。此後,必須按期備份事務日誌。這不只能最小化工做丟失風險,還有助於事務日誌的截斷。一般,事務日誌在每次常規日誌備份以後截斷。
連續的日誌備份序列稱爲日誌鏈。日誌鏈從數據庫的完整備份開始。一般,僅當第一次完整備份數據庫時或者將恢復模式從簡單恢復模式切換到完整恢復模式或大容量日誌恢復模式以後,纔會開始一個新的日誌鏈。在完整恢復模式下(或者在大容量日誌恢復模式下的某些時候),接二連三的日誌鏈能夠將數據庫還原到任意時間點。
若要將數據庫還原到故障點,必須保證日誌鏈是完整的。也就是說,事務日誌備份的連續序列必須可以延續到故障點。此日誌序列的開始位置取決於所還原的數據備份類型:數據庫備份(包括完整或差別備份)、部分備份或文件備份。對於數據庫備份或部分備份,日誌備份序列必須從數據庫備份或部分備份的結尾處開始延續。對於一組文件備份,日誌備份序列必須從整組文件備份的開頭開始延續。
若是日誌備份丟失或損壞,則可經過建立完整數據庫備份或差別數據庫備份並隨後備份事務日誌來開始一個新的日誌鏈。若是要將數據庫還原到事務日誌備分內的某個時點,則建議保留丟失的日誌備份以前的事務日誌備份。
尾日誌備份:
在完整恢復模式或大容量日誌恢復模式下數據庫發生災難時,SQL Server 20052008能夠備份日誌結尾以捕獲還沒有備份的活動日誌記錄,把還原數據庫操做以前對日誌尾部執行的日誌備份稱爲尾日誌備份。
因此這裏面有一點特別重要,在完整恢復模式或大容量日誌恢復模式下一旦數據庫發生災難,還原數據庫時,進行的第一步操做是尾日誌備份(若是尾日誌能備份的話),這樣纔不會丟失自上一第二天志備份(也多是完整或差別備份,主要是看用什麼備份策略)後的數據。若是日誌文件受損且沒法建立結尾日誌備份,則必須在不使用結尾日誌備份的狀況下還原數據庫。最新日誌備份(也多是完整或差別備份,主要是看用什麼備份策略)後提交的任何事務都將丟失。
文件和文件組備份:
針對大型數據庫和性能要求使完整數據庫備份顯得不切實際時,則能夠建立文件備份。文件備份包含一個或多個文件(或文件組)中的全部數據。文件備份包括完整文件備份和差別文件備份。針對大型數據庫能夠分別備份和還原數據庫中的文件,並且能夠僅還原已損壞的文件,而沒必要還原數據庫的其餘部分。
差別文件備份爲建立當前文件備份提供了一種快速而且節省空間的方式。在簡單恢復模式下,僅爲只讀文件組啓用了差別文件備份。在完整恢復模式下,容許對具備差別基準的任何文件組進行差別文件備份。
文件和文件組備份增長了備份和還原的複雜度。
Copy_only備份:
僅複製備份能夠在不打斷正常備份序列的狀況下複製數據庫的內容,這個功能從SQL Server 2005開始引入。事務日誌從不在僅複製備份後出現截斷,這對平時DEVDBA僅想得到一份完整的數據庫用於測試工做,而又不影響當前的備份序列很是方便。
 
敲文字敲到手軟,哈哈,算是對恢復模式和備份類型的全面總結,由於恢復模式和備份類型對設計一種合理的備份策略過重要了,但願對你們有用。下一篇繼續寫SQL Server 2008備份策略設計。
相關文章
相關標籤/搜索