Разностные резервные копии (SQL Server)

Этот раздел резервного копирования и восстановления относится ко всем базам данных SQL Server.

Разностная резервная копия основана на последней, предыдущей полной резервной копии данных. Разностная резервная копия записывает только измененные данные с момента полного резервного копирования. Полная резервная копия, на которой основана разностная резервная копия, называется базой разностной копии. Полные резервные копии, за исключением резервных копий только для копирования, могут служить основой для ряда разностных резервных копий, включая резервные копии базы данных, частичные резервные копии и резервные копии файлов. Базовая резервная копия для разностной резервной копии файлов может содержаться в полной резервной копии, резервной копии файла или частичной резервной копии.

Преимущества

  • Создание разностных резервных копий может быть очень быстрым по сравнению с созданием полной резервной копии. Разностная резервная копия записывает только те данные, которые изменились с момента полного резервного копирования, на котором она основывается. Это упрощает частое резервное копирование данных, что снижает риск потери данных. Однако перед восстановлением разностной резервной копии необходимо восстановить базу. Поэтому восстановление из разностной резервной копии обязательно будет выполнять больше шагов и времени, чем восстановление из полной резервной копии, так как требуются два файла резервного копирования.

  • Разностные резервные копии базы данных особенно полезны, если подмножество базы данных изменяется чаще, чем остальная часть базы данных. В этих случаях разностные резервные копии баз данных позволяют часто создавать резервные копии без дополнительных затрат на полные резервные копии базы данных.

  • В модели полного восстановления использование разностных резервных копий может уменьшить количество резервных копий журналов, которые необходимо восстановить.

Обзор разностных резервных копий

Разностная резервная копия фиксирует состояние любых экстентов (коллекций восьми физически смежных страниц), которые изменились между созданием разностной базы и при создании разностной резервной копии. Это означает, что размер заданной разностной резервной копии зависит от объема данных, измененных с момента создания базы. Как правило, чем старше база данных, тем больше будет новая разностная резервная копия. В серии разностных резервных копий часто обновляемая область, скорее всего, будет содержать разные данные в каждой разностной резервной копии.

На следующем рисунке показано, как работает разностная резервная копия. На рисунке показаны 24 экстенты данных, 6 из которых изменились. Разностная резервная копия содержит только эти 6 экстентов данных. Разностная операция резервного копирования использует страницу растрового изображения, содержащую бит для каждого экстента. Для каждого экстента, обновляемого с момента базовой, бит имеет значение 1 в растровом рисунке.

Разностная растровая карта определяет измененные участки

Замечание

Дифференциальное растровое изображение не обновляется резервным копированием только для копии. Поэтому резервная копия только для копирования не влияет на последующие разностные резервные копии.

Разностное резервное копирование, выполненное вскоре после базового, обычно значительно меньше самой базовой копии. Это экономит место в хранилище и время резервного копирования. Однако при изменении базы данных с течением времени разница между базой данных и определенной разностной базой увеличивается. Чем дольше время между разностной резервной копией и ее базой, тем больше разностная резервная копия, скорее всего, будет. Это означает, что разностные резервные копии могут в конечном итоге приблизиться к основной резервной копии по размеру. Большая разностная резервная копия теряет преимущества более быстрой и меньшей резервной копии.

По мере увеличения размера разностных резервных копий восстановление разностной резервной копии может значительно увеличить время, необходимое для восстановления базы данных. Поэтому рекомендуется создать новую полную резервную копию с заданными интервалами, чтобы установить новую разностную базу данных. Например, можно выполнять полное резервное копирование всей базы данных один раз в неделю, а затем в течение недели регулярно создавать разностные резервные копии.

Во время восстановления перед восстановлением разностной резервной копии необходимо восстановить её основную резервную копию. Затем восстановите только последнюю разностную резервную копию, чтобы перенести базу данных в момент создания разностной резервной копии. Как правило, вы восстановите последнюю полную резервную копию, за которой следует последняя разностная резервная копия, основанная на этой полной резервной копии.

Разностные резервные копии баз данных с таблицами Memory-Optimized

Сведения о разностных резервных копиях и базах данных с оптимизированными для памяти таблицами см. в статье "Резервное копирование базы данных с помощью таблиц Memory-Optimized".

Разностные резервные копии баз данных Read-Only

Для баз данных только для чтения проще управлять полными резервными копиями, когда они используются самостоятельно, чем при использовании вместе с дифференциальными резервными копиями. Если база данных доступна только для чтения, резервное копирование и другие операции не могут изменить метаданные, содержащиеся в файле. Таким образом, метаданные, необходимые разностной резервной копии, например номер последовательности журнала, с которого начинается разностная резервная копия (разностная база LSN), хранятся в базе данных master . Если разностная база принимается, когда база данных доступна только для чтения, разностная растровая карта указывает на больше изменений, чем фактически произошло после базовой резервной копии. Дополнительные данные считываются резервным копированием, но не записываются в резервную копию, так как differential_base_lsn , хранящиеся в системной таблице резервного набора резервных копий , используются для определения того, изменились ли данные с момента создания базы.

Когда база данных только для чтения перестроена, восстановлена или отключена и подключена, разностная базовая информация теряется. Это происходит, так как база данных master не синхронизирована с пользовательской базой данных. Ядро СУБД SQL Server не может обнаружить или предотвратить эту проблему. Любые последующие разностные резервные копии не основаны на последней полной резервной копии и могут привести к непредвиденным результатам. Чтобы установить новую разностную базу, рекомендуется создать полную резервную копию базы данных.

Рекомендации по использованию разностных резервных копий с базой данных Read-Only

После создания полной резервной копии базы данных только для чтения, если вы планируете создать последующее разностное резервное копирование, создайте резервную копию базы данных master .

Если база данных master потеряна, восстановите ее перед восстановлением разностной резервной копии пользовательской базы данных.

Если вы отсоедините и подключите базу данных только для чтения, для которой планируется позже использование разностных резервных копий, как только это станет возможным, выполните полную резервную копию базы данных только для чтения и базы данных master.

Связанные задачи

См. также

Общие сведения о резервном копировании (SQL Server)
Полные резервные копии баз данных (SQL Server)
Полное восстановление базы данных (модель полного восстановления)
Полное восстановление базы данных (простая модель восстановления)
Резервные копии журналов транзакций (SQL Server)