SQL Server 2008 儲存結構之DCM、BCM

bq_wang發表於2010-10-28
   原文首發於it168,連結見http://tech.it168.com/a2010/0921/1106/000001106857.shtml

   差異變更(Differential Changed Map,DCM)頁面。它跟蹤一個檔案中的哪一個區在最新一次完全資料庫備份以後被修改過。這樣SQL Server用在增量備份時只對已發生資料變更的分割槽進行增量備份即可。

   那麼首先讓我們執行一下dbcc page(testDB,1,6,2)命令,可以看出前96位元組為檔案頭,接下來的96個位元組為保留頁面,從第195個位元組才開始記錄區是否已做變更。由 於是新庫,資料物件並不多;ffff 7f,這三個位元組記錄了需要進行下次備份需要進行增量備份的資訊。

1
 

  讓我們換個檢視來看一下,即執行dbcc page(testDB,1,6,3),這樣可以清楚地看到只有第0頁到第183頁是CHANGED狀態,下次備份需要備份這些頁面。

1
 

  接下來當我們執行一次testDB庫全備後,再次用dbcc page(testDB,1,6,3)觀察一下變化。

1
 

  就會發現除了一下系統保留頁面,基本上都變更為NOT CHANGED狀態,記住DCM頁面記錄的是區變更資訊,並且系統保留頁面是一定要備份的。

  BCM頁

   批量更改對映(Bulk Changed Map,BCM)頁面,只有在資料庫處於BULK_LOGGED模式,並且沒有執行任何bulk批量操作時,才被使用到,因為BULK_LOGGED模式 時資料庫日誌記錄了包含資料庫所有改變的完整順序記錄,所以我們能夠將資料庫還原到任一時間點。

  大容量日誌恢復模式是一種特殊用途的恢復模式,只應偶爾用於提高某些大規模大容量操作(如大量資料的大容量匯入)的效能

  與完整恢復模式(完全記錄所有事務)相比,大容量日誌恢復模式只對大容量操作進行最小記錄(儘管會完全記錄其他事務)。大容量日誌恢復模式保護大容量操作不受媒體故障的危害,提供最佳效能並佔用最小日誌空間。

  但是,大容量日誌恢復模式會增加這些大容量複製操作丟失資料的風險,因為大容量日誌操作阻止再次捕獲對每個事務逐一所做的更改。如果日誌備份包含大容量日誌操作,則無法還原到該日誌備份中的時點,而只能還原整個日誌備份。

  為跟蹤資料頁,日誌備份操作依賴於點陣圖頁的大容量更改,點陣圖頁針對每個區包含一位。對於自上次日誌備份後由大容量日誌操作所更新的每個區,在點陣圖中將每個位都設定為 1。

  因為BCM頁的應用場景比較單一,在此不對BCM頁做相關詳述。

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

相關文章