Отслеживание измененных экстентов

SQL Server использует две структуры внутренних данных, чтобы отслеживать экстенты, измененные операциями массового копирования, и экстенты, измененные со времени последнего полного резервного копирования. Эти структуры данных существенно ускоряют разностные резервные копии. Они также ускоряют операции записи в журнал массового копирования, если база данных использует модель восстановления с неполным протоколированием. Подобно страницам глобальной карты распределения (GAM) и общей общей глобальной карты распределения (SGAM), эти структуры являются битовыми картами, в которых каждый бит представляет один экстент.

  • Схема разностных изменений (DCM)

    Она отслеживает экстенты, которые были изменены со времени последнего выполнения инструкции BACKUP DATABASE. Если бит или экстент равен 1, значит, экстент был изменен со времени последнего выполнения инструкции BACKUP DATABASE. Если бит равен 0, то экстент не был изменен.

    Чтобы определить, какие экстенты были изменены, разностные резервные копии считывают только страницы DCM. Это существенно сокращает количество страниц, которые должна просмотреть разностная резервная копия. Количество времени, которое затрачивает разностная резервная копия, пропорционально количеству экстентов, измененных со времени последнего выполнения инструкции BACKUP DATABASE, а не размеру всей базы данных.

  • Схема массовых изменений (BCM)

    Она отслеживает экстенты, измененные операциями с неполным протоколированием со времени последнего выполнения инструкции BACKUP LOG. Если бит или кластер страниц равен 1, значит, экстент был изменен операцией неполного протоколирования после последнего выполнения инструкции BACKUP LOG. Если бит равен 0, то экстент не был изменен операциями с неполным протоколированием.

    Несмотря на то, что страницы BCM существуют во всех базах данных, они применяются только в том случае, если база данных использует модель восстановления с неполным протоколированием. В данной модели восстановления при выполнении инструкции BACKUP LOG процесс резервного копирования просматривает схемы BCM для измененных экстентов. Затем он включает экстенты из резервной копии журнала. Это позволяет восстановиться операциям с неполным протоколированием, если база данных восстанавливается из резервной копии журнала и последовательности резервных копий журнала транзакции. Страницы BCM в базе данных, которая использует простую модель восстановления, не соответствуют, потому что не произведена запись в журнал ни одной операции с неполным протоколированием. Они не соответствуют базе данных, которая использует модель полного восстановления, потому что эта модель восстановления принимает операции с неполным протоколированием за операции с полным протоколированием.

Интервал между DCM- и BCM-страницами равен интервалу между GAM- и SGAM-страницами — 64 000 экстентов. DCM- и BCM-страницы расположены за GAM- и SGAM-страницами в физическом файле:

Страницы карт разностных и блочных изменений