認識SQL Server2000 資料庫備份的型別[ZT]

tolywang發表於2008-12-11

  完全資料庫備份: 將資料庫中所有資料檔案全部複製,包括完全資料庫備份過程中資料庫的所有行為。所有使用者資料以及所有資料庫物件,包括系統表,索引和使用者自定義表,都包括在內。

  差異資料庫備份: 差異資料庫備份複製最後一次完全資料庫備份以來所有資料檔案中修改過的資料,包括差異資料庫備份過程中發生的所有資料庫行為。

  檔案和檔案組備份: 檔案備份只複製單個資料檔案,檔案組備份複製單個檔案組中的每個資料檔案,包括檔案或檔案組備份過程中發生的所有資料庫行為。此型別的備份比完全資料庫備份佔用的時間和空間都要小。檔案和檔案組備份需要進行詳細計劃,以便相關的資料和索引可以共同備份(恢復)。此外,在邏輯上將檔案和檔案組恢復到與資料庫中的其他部分一致的狀態,需要一個事務處理日誌檔案備份 的完整子集。

  差異檔案和差異檔案組備份:差異檔案和檔案組備份在概念上與差異資料庫備份一致。它們比複製整個檔案或檔案組花費的時間和空間更少,由於它減少必須應用的事務處理日誌備份的數量。

  事務處理日誌備份: 事務處理日誌備份是對最後一次事務處理日誌備份以來事務處理日誌中記錄的所有事務處理的一種順序記錄。事務處理日誌備份使您可以將資料庫恢復到某個特定的時間點,如輸入錯誤資料前。事務處理日誌備份只以BULK-LOGGED RECOVERY模型和FULL RECOVERY模型使用。SIMPLE RECOVERY模型不使用事務處理日誌備份來對資料庫進行恢復和修復。

  SQL Server 2000完成事務處理日誌備份: (除非專門指定)時,它將截斷並沒有包含事務處理日誌中活動部分的所有虛擬日誌檔案VLF。這使得可以重複使用這些VLF。事務處理日誌的活動部分包括:事務處理日誌中所有含有活動事務處理,或者標記為複製但是還沒有複製的事務處理的部分。在產品資料庫中,您通常將使用BULK-LOGGED RECOVERY模型或者FULL RECOVERY模型,並且週期性的執行事務處理日誌備份,以截斷事務處理日誌。如果不經常截斷事務處理日誌,它將可能積累過多。如果事務處理日誌執行越界,SQL Server將被關閉。您應該透過週期性的事務處理日誌備份來截斷事務處理日誌,而不應該手工截斷事務處理日誌,因為手工截斷中斷日誌檔案備份鏈。您只需要備份事務處理日誌而不用截斷它的唯一時候是:當資料檔案失效並且必須備份當前的活動事務處理日誌時,在這種情況下,就不能截斷,因為資料檔案被損壞或不存在了。

  理解修復過程: SQL Server 2000具有兩種修復過程:自動修復過程(每次啟動SQL Server時自動執行)和手工修復過程。

  設計自動修復過程的目的是為了保證一旦啟動了SQL Server,每個資料庫中的資料可以在邏輯上保證一致,而不管SQL Server是如何或為什麼關閉。SQL Server使用事務處理日誌來完成該任務。它讀取每個資料事務處理日誌的活動部分,並對自最近檢查點以來發生的所有事務處理進行檢查。它對所有提交的事務處理進行判斷,並將它們向前滾動。這意味著將它們再次在資料庫上加以應用。然後,它判斷所有未提交的事務處理,將它們向後滾動。這可以保證只部分寫入資料庫的事務處理全部被刪除。該過程可以保證每個資料庫邏輯上的連續狀態得以儲存。自動修復過程還可以釋出一個檢查點,來標記事務處理日誌與該點保持一致。

  SQL Server從修復主資料庫開始。主資料庫包含了用於定位,開啟和恢復剩餘的資料庫。其次,它修復模型和MSDB資料庫(和可能存在的分散式資料庫)。再次,修復每個使用者資料庫。最後,清除並啟動TEMPDB資料庫而結束。您可以透過查詢SQL Server錯誤日誌來檢查修復過程。

  注意,你不能直接控制自動修復過程。

  手工恢復涉及到應用一個或多個資料庫備份,然後手工將它們完全修復或修復到某個特定點。在手工修復過程結束時,資料庫邏輯上應該是一致的。

恢復資料庫

  如果您喜歡外將資料庫恢復到最近的事務處理日誌備份結束時的狀態,您應該使用最近的完全資料庫備份進行啟動。可以將這種完全資料庫備份恢復為SQLSERVER例項的任何一種例項,而不僅僅是它得以備份時的狀態。如果您在使用差異資料庫備份,那麼您可以恢復到最近的差異資料庫備份。最後,您將恢復比最近的完整或差異資料庫備份更近的事務處理日誌備份。作為恢復最後的事務處理日誌備份的一部分,SQL Server還將執行一個手工恢復過程,將顯著的事務處理適當向前和向後滾動。

  如果最近的完整資料庫或差異資料庫備份受到損壞或丟失,您仍然可以使用以前的事務處理日誌備份進行恢復。因此,如果您保留了一個完整的事務處理日誌備份鏈,那麼,您總可以恢復,因為單個的完整資料庫備份與所有事務處理備份日誌一起存在。顯然,應用其他的事務處理日誌備份將花費其他的時間。經常性的執行完全和差異資料庫備份可以減少修復時間,因為它需要的應用事務處理日誌備份少。保留並保護(以及複製)完整的事務處理日誌備份鏈,可以提供一些其他的容錯性,以防備份媒體的損失或丟失。

  恢復檔案和檔案組

  如果您希望將檔案或檔案組恢復到最近的事務處理日誌備份點時的狀態,您應該使用最近的檔案或檔案組備份開始。該最近的備份可以來自檔案或檔案組備份,也可以來自完全資料庫備份。從完全資料庫備份恢復單個檔案比從檔案備份恢復單個檔案花費的時間要長。如果您正使用差異檔案或檔案組備份,那麼可以恢復最近的檔案或檔案組備份。最後,按照順序恢復比最近恢復了的差異檔案或檔案組備份更近的每個事務處理日誌備份。作為恢復最後事務處理日誌備份過程的一部分,SQLSERVER將執行一個手工的恢復過程,將顯著的事務處理過程適當向前和向後滾動。這些檔案或檔案組將得以正確恢復,而不會丟失資料。

  與完整和差異資料庫備份不同,檔案和檔案組備份必須應用事務處理日誌備份,以便使恢復的檔案或檔案組在邏輯上與資料庫的其他保持一致。如果您正在使用檔案或檔案組備份恢復整個資料庫,那麼任何一個備份媒體的丟失都將導致整個資料庫的不可恢復。

  恢復所有的資料檔案或所有的檔案組,並應用所有的事務處理日誌,在功能上與恢復整個資料庫等效。

  恢復和修復到某個以前的時間點

  有時,可能因為某種使用者或應用程式錯誤,您希望將資料庫恢復到某個以前時間的某一點狀態。將資料庫恢復到事務處理日誌中某個特定的時間點,或事務處理日誌中某個命名標記的狀態,就可以達到此目的。為了恢復到某個特定的時間點,您可以恢復完全資料庫備份,並選擇某個差異資料庫備份。然後按順序將事務處理日誌備份恢復到您打算恢復的時間點。當恢復了希望恢復的最後一個事務處理日誌時,應該將恢復過程僅指定到事務處理日誌備份中的某個特定的時間點。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-509898/,如需轉載,請註明出處,否則將追究法律責任。

相關文章