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

Применимо к: SQL Server (все поддерживаемые версии)

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

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

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

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

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

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

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

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

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

Схема того, как разностная растровая карта определяет измененные экстенты.

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также раздел