SQL Server 使用兩個內部數據結構跟蹤被大容量複製操作修改的區,以及自上次完整備份後修改的區。這些數據結構極大地加快了差異備份的速度。當資料庫使用大容量日誌恢復模式時,這些數據結構也可以加快將大容量複製操作記錄至日誌的速度。與全局分配圖 (GAM) 和共用全局分配圖 (SGAM) 頁相同,這 ...
SQL Server 使用兩個內部數據結構跟蹤被大容量複製操作修改的區,以及自上次完整備份後修改的區。這些數據結構極大地加快了差異備份的速度。當資料庫使用大容量日誌恢復模式時,這些數據結構也可以加快將大容量複製操作記錄至日誌的速度。與全局分配圖 (GAM) 和共用全局分配圖 (SGAM) 頁相同,這些結構也是點陣圖,其中的每一位代表一個單獨的區。
- 差異更改映射表 (DCM)
這樣便可以跟蹤自上次執行 BACKUP DATABASE 語句後更改過的區。如果擴展盤區的位是 1,則自上次執行 BACKUP DATABASE 語句後擴展盤區已被修改。如果位是 0,則擴展盤區沒有被修改。
差異備份只讀取 DCM 頁便可以確定已修改的區。這樣大大減少了差異備份必須掃描的頁數。運行差異備份所需的時間與自上次執行 BACKUP DATABASE 語句之後修改的區數成正比,而不是與整個資料庫的大小成正比。
- 大容量更改映射表 (BCM)
跟蹤自上次執行 BACKUP LOG 語句後,被大容量日誌記錄操作修改的區。如果某個擴展盤區的位是 1,表明自上次執行 BACKUP LOG 語句後,該擴展盤區已經被有日誌記錄的大容量複製操作修改。如果位是 0,則該擴展盤區未被有日誌記錄的大容量複製操作修改。
儘管所有資料庫中都顯示 BCM 頁,但只有在資料庫使用大容量日誌記錄恢復模式時,才會與 BCM 頁有關。在此恢復模式中,當執行 BACKUP LOG 時,備份進程將掃描 BCM 查找已經修改的區。然後,將那些區包括在日誌備份中。如果資料庫從資料庫備份和一系列事務日誌備份恢復,便可以恢復大容量日誌記錄操作。在使用簡單恢復模式的資料庫中,BCM 頁是不相關的,因為大容量日誌記錄操作不記入日誌。在使用完整恢復模式的資料庫中,BCM 頁同樣不相關,因為該恢復模式將大容量日誌記錄操作視為有完整日誌記錄的操作。
DCM 頁和 BCM 頁的間隔與 GAM 和 SGAM 頁的間隔相同,都是 64,000 個區。在物理文件中,DCM 和 BCM 頁位於 GAM 和 SGAM 頁之後。