無論是資料庫dev還是dba,都希望關鍵業務資料庫的完整性和可用效能得到保障,資料庫備份是一種不錯的選擇。sql server 2008支援不同應用層次的多種備份方式,為我們的業務資料提供了強有力的保障,這一篇博文就來**如何在sql server 2008下設計合理的備份策略。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
為了設計合理的備份策略,首先要熟悉sql server 2008都支援哪些恢復模式,它支援的恢復模式有如下:
翻譯後如下:
簡單恢復模式:
在簡單恢復模式下,只支援完整備份和差異備份,不支援事務日誌備份。在簡單恢復模式下還原資料庫時只能還原到上一次資料庫備份的資料,而上一次資料庫備份以後的資料將無法進行還原,在發生災難時,這些上一次資料庫備份以後的資料必須重做。所以簡單恢復模式並不適用於生產系統。另外在簡單恢復模式下,由於事務日誌會被截斷,所以日誌檔案不會一直膨脹,非常小。
完整恢復模式:
完整恢復模式是微軟建議在生產環境中使用的恢復模式。在正常情況下(即能備份日誌尾部)發生災難進行還原資料庫時,不會丟失任務資料。但是如果日誌尾部損壞,則必須重做自上一次日誌備份或差異備份等之後所做的更改。在完整恢復模式下,所有的操作都會在日誌中完整地記錄下來。
大容量日誌恢復模式:
大容量日誌恢復模式簡單地記錄了大多數大容量操作日誌(如bulk insert,create index,select into等),而不是記錄全部大容量操作日誌,所以這些大容量操作比在完整恢復模式下執行要快很多,同時大容量日誌恢復模式完整記錄了其他事務日誌。所以大容量日誌恢復模式是一種特殊用途的恢復模式,只應用於提高某些大規模大容量操作(如大量資料的大容量匯入)的效能。完整恢復模式下有關備份的許多說明也適用於大容量日誌恢復模式。
如果在最新日誌備份後發生日誌損壞或執行大容量日誌記錄操作,則必須重做自該上次備份之後所做的更改,否則不丟失任何資料。
另外設計合理的備份策略,還要熟悉sql server 2008都支援哪些備份型別,它支援的備份型別有如下:
翻譯後如下:
完整資料庫備份:
完整備份會備份資料庫中的所有資料,以及可以恢復這些資料的足夠的日誌。它為差異、事務日誌備份建立基準備份。在資料庫底層上,完整備份實際上是把所有頁(page)複製到備份裝置上。
差異資料庫備份:
差異備份僅備份自上次完整備份後發生更改的資料。通常,建立基準備份之後執行的差異備份比基準備份更小,建立速度也更快。因此,使用差異備份可以加快進行頻繁備份的速度,從而降低資料丟失的風險。通常,乙個差異基準會由若干個相繼的差異備份使用。還原時,首先還原完整備份,然後再還原最後乙個的差異備份。
業務資料庫執行一段時間後,隨著資料庫的更新,包含在差異備份中的資料量會增加。這使得建立和還原差異備份的速度變慢。因此,必須重新建立乙個完整備份,為另乙個系列的差異備份提供新的差異基準。
同樣,差異備份和完整備份類似,也會備份恢復資料的足夠日誌,這是由資料庫系統控制的。
在資料庫底層上,差異備份是備份自上次完整備份以後所有修改的區(extent)。
部分備份:
部分備份與完整資料庫備份類似,但是部分備份不包含所有檔案組。部分備份包含主檔案組、每個讀寫檔案組以及任何指定(可選)的唯讀檔案中的所有資料。部分備份在希望不包括唯讀檔案組時非常有用。唯讀資料庫的部分備份僅包含主檔案組。
部分備份功能從sql server 2005開始引入。
建立部分備份時,必須在backup 語句中指定read_write_filegroups 選項。也可以指定任何唯讀檔案或檔案組,以便將其包括在部分備份中。
事務日誌備份:
在完整恢復模式或大容量日誌恢復模式下,需要定期進行事務日誌備份。每個日誌備份都包括建立備份時處於活動狀態的部分事務日誌,以及先前日誌備份中未備份的所有日誌記錄。在建立第乙個事務日誌備份之前,必須先建立完整備份(如完整資料庫備份或一組檔案備份中的第乙個完整備份)。此後,必須定期備份事務日誌。這不僅能最小化工作丟失風險,還有助於事務日誌的截斷。通常,事務日誌在每次常規日誌備份之後截斷。
連續的日誌備份序列稱為「日誌鏈」。日誌鏈從資料庫的完整備份開始。通常,僅當第一次完整備份資料庫時或者將恢復模式從簡單恢復模式切換到完整恢復模式或大容量日誌恢復模式之後,才會開始乙個新的日誌鏈。在完整恢復模式下(或者在大容量日誌恢復模式下的某些時候),連續不斷的日誌鏈可以將資料庫還原到任意時間點。
若要將資料庫還原到故障點,必須保證日誌鏈是完整的。也就是說,事務日誌備份的連續序列必須能夠延續到故障點。此日誌序列的開始位置取決於所還原的資料備份型別:資料庫備份(包括完整或差異備份)、部分備份或檔案備份。對於資料庫備份或部分備份,日誌備份序列必須從資料庫備份或部分備份的結尾處開始延續。對於一組檔案備份,日誌備份序列必須從整組檔案備份的開頭開始延續。
如果日誌備份丟失或損壞,則可通過建立完整資料庫備份或差異資料庫備份並隨後備份事務日誌來開始乙個新的日誌鏈。如果要將資料庫還原到事務日誌備份內的某個時點,則建議保留丟失的日誌備份之前的事務日誌備份。
尾日誌備份:
在完整恢復模式或大容量日誌恢復模式下資料庫發生災難時,sql server 2005或2008可以備份日誌結尾以捕獲尚未備份的活動日誌記錄,把還原資料庫操作之前對日誌尾部執行的日誌備份稱為尾日誌備份。
所以這裡面有一點特別重要,在完整恢復模式或大容量日誌恢復模式下一旦資料庫發生災難,還原資料庫時,進行的第一步操作是尾日誌備份(如果尾日誌能備份的話),這樣才不會丟失自上一次日誌備份(也可能是完整或差異備份,主要是看用什麼備份策略)後的資料。如果日誌檔案受損且無法建立結尾日誌備份,則必須在不使用結尾日誌備份的情況下還原資料庫。最新日誌備份(也可能是完整或差異備份,主要是看用什麼備份策略)後提交的任何事務都將丟失。
檔案和檔案組備份:
針對大型資料庫和效能要求使完整資料庫備份顯得不切實際時,則可以建立檔案備份。檔案備份包含乙個或多個檔案(或檔案組)中的所有資料。檔案備份包括完整檔案備份和差異檔案備份。針對大型資料庫可以分別備份和還原資料庫中的檔案,而且可以僅還原已損壞的檔案,而不必還原資料庫的其他部分。
差異檔案備份為建立當前檔案備份提供了一種快速並且節省空間的方式。在簡單恢復模式下,僅為唯讀檔案組啟用了差異檔案備份。在完整恢復模式下,允許對具有差異基準的任何檔案組進行差異檔案備份。
檔案和檔案組備份增加了備份和還原的複雜度。
copy_only備份:
僅複製備份可以在不打斷正常備份序列的情況下複製資料庫的內容,這個功能從sql server 2005開始引入。事務日誌從不在僅複製備份後出現截斷,這對平時dev或dba僅想獲得乙份完整的資料庫用於測試工作,而又不影響當前的備份序列非常方便。
SQL Server 2008每日備份
備份資料庫檔案 1 建議資料庫系統每天做一次自動備份,備份方法 可以使用 sqlserver 企業管理器中自帶的維護計畫完成 1 sqlserver 的自動備份需要使用 sql server 服務,一定要啟動。2 把資料庫恢復模式改為完整,這樣就是資料庫出現問題也可恢復。選中資料庫,右鍵屬性。3 新...
sql server 2008 自動備份
身份驗證 包含windows身份驗證和 sql server身份驗證,此處選擇windows 身份驗證 選擇 管理 維護計畫 維護計畫嚮導 必須啟用 服務 啟動模式請改為自動 備份資料到特定目錄時出現拒絕訪問,然後測試備份到c盤根目錄正常。但是就是需要備份到特定的專案目錄中。查了下原因 是因為那個目...
SQLSERVER2008備份對日誌檔案的操
待確認該測試 今天碰到一位朋友提出問題,sqlserver全庫備份時,如果日誌檔案很大,是否也會包含進備份檔案裡,經過實驗如下 建立資料庫 create database db1 on primary name db1 filename e ls db1.mdf size 3mb,filegrowt...