程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2008 存儲結構之DCM、BCM

SQL Server 2008 存儲結構之DCM、BCM

編輯:關於SqlServer
差異變更(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頁做相關詳述。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved