SQL SERVER數據庫 三種 恢復模式


SQL SERVER 2005 以后三種恢復模式: 簡單(Sample),完全(Full),大批量(Bulk_Logged)

完全備份模型

        完全備份模式是指在出現數據文件毀壞時丟失數據的風險最小。如果一個數據庫在此模式下是,所有操作都會被完全記錄下來,這意味着記錄使用INSERT操作增加的每一行,使用DELETE操作刪除的每一行和使用UPDATE操作修改的每一行,SQL server還會將使用BCP和BULK insert 操作插入的每一行完全被記錄到事物日志中。如果遇到一個數據庫備份之后一直在做着定期事務日志備份,那么我們就可以將數據庫恢復到最后的日志備份之前任何一個時間點的狀態。另外,如果在數據文件出故障之后有日志文件可用,那么我們可以將DB恢復到故障前已提交的最后一個日志的狀態。SQL SERVER2005以后也支持一個成為日志標識(LOG MARKS)的特性,這允許我們在事務日志中放置一些參照點。如果數據是在完全恢復模式下,我們可以選擇恢復某個日志標志時的狀態。

        在完全恢復模式下,SQL SERVER 也會完全記錄CREATE INDDEX 操作,當從包含創建索引的事務日志備份中恢復時,由於索引不必重建,恢復操作會進行的非常迅速---所有的索引頁都已經作為數據庫備份的一部分被獲取。在SQL SERVER 2000之前sql server只記錄一個所有已經被創建的事實,這樣一來當我們從日志文件備份中恢復時,整個索引將會不得不重新建立。

        看起來完全恢復模式是最好的,但是這是要付出其他的代價的。其中最大的待機就是事務日志會相當的大。

大批量恢復模型(BULK Logged)

        大批量恢復模式允許我們在出現介質故障時完全地還原數據庫,它還能夠對某些大批量操作提供最佳的性能和最小的日志使用空間。這些大批量操作包含 BULK INSERT, BCP, CREATE INDEX, SELECT INTO, WRITETEXT 和UPdatetext。對完全恢復模式,這些操作是完全被記錄的,但是對大批量恢復模式,對它們的記錄是最小量的。

        當執行大批量操作中的某一種操作時,SQL SERVER 只會記錄該操作曾經發生過和關於該操作分配空間的信息。但是因為SQL SERVER跟蹤了該大批量操作實際上修改了那些區,所以該操作還是可以完全恢復的。在數據庫中的每一個數據我那件都至少有一個成為大批量更改地圖(BULK CHANGE MPA, BCM)的頁面,SQL SERVER對該頁面的管理類似 GAM SGAM的管理。

       因為能夠最小量的記錄大批量的操作,所以這些操作能夠比在完全備份模式時執行的要快的很多。在正確的BCM頁面設置各個標志位需要一些開銷,但是與記錄每一個對數據和索引的單獨更改相比,翻轉這些位的開銷要小的多。

       如果數據庫在bulk logged模式下並且沒有實際執行任何大批量操作,以為該日志將會包含數據庫所有改變的完整順序記錄,所以我們能夠將數據庫還原到任一個時間點或者命名日志標識。

       在備份日志期間會有些開銷,除了將事務日志的內容復制到備份介質,SQL SERVER會掃描BCM頁面並在備份事務日志的同時備份所以修改過的區。日志文件自身會保持很小,但是該日志的備份可能會比日志文件大上很多倍,所以日志備份需要更多的時間並且可能會比FULL模式消耗更多的空間。還原一個在大批量模式所做的日志備份所消耗的時間與還原一個在FULL模式下所做的日志備份用的時間基本相同。還原過程不需要重做各個操作,恢復所有數據和索引結構所需要的信息都包含在日志備份中。

簡單恢復模型(Sample)

        簡單恢復模型(Sample)

        簡單恢復模型提供了最簡單的備份----恢復策略。每當有檢查點發生時(檢查點會定時地,經常地發生),事務日志都會被階段。因此,所能進行備份的備份類型就是那些不需要日志備份的類型。這些類型的備份有完全備份數據庫備份,增量備份,部分完全備份,部分增量備份和針對只讀文件組的文件組備份。在簡單恢復模式下如果試圖進行日志備份,那么會收到錯誤信息,因為該模式的備份不需要日志的,一旦它所包含的所有事務被提交或者回滾,該日志的各部分就能夠被重新利用,並且服務器或者事物出現故障時恢復也不需要這些事物信息。事實上,一旦數據庫改變到簡單模式下,日志就會被截斷。

       需要注意:簡單模式不是不記錄日志。所謂的“簡單”是我們的備份策略不需要擔心日志備份,雖然單個的日志記錄並不如在完全備份模式下的,但是在簡單模式下是的所有操作都會被記錄。因為在大批量恢復模式中談論的大批量操作在這里也會以最小量記錄,所以簡單模式下一個數據庫的日志可能沒有完全模式下的日志增長那么快那么多。這並不是說在簡單模式下我們就不用關系日志文件的大小。就像在任何恢復模式中一樣,活動食物的日志記錄無法被截斷並且在最老的活動食物之后開始的所有事物的日志記錄都不能被截斷。所以,如果有大型或者長時間的事務,仍然會需要大量日志空間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM