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

Применимо к:SQL Server

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

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

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

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

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

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

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

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

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

Diagram of how the differential bitmap identifies changed extents.

Заметка

Битовая карта разностного резервного копирования не обновляется при создании резервной копии только для копирования. Поэтому резервная копия только для копирования не оказывает никакого влияния на последующие разностные резервные копии.

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

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

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

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

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

Разностные резервные копии баз данных только для чтения

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

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

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

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

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

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

См. также