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

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

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

ПримечаниеПримечание

Во время резервного копирования свойство IsReadOnly для файловой группы изменять нельзя, это приведет к ошибке.

Создание частичных резервных копий после перевода базы данных в режим для чтения и записи

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

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

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

Если база данных, доступная только для чтения, перестраивается, восстанавливается или отсоединяется, а затем снова присоединяется, то теряются все данные основы для разностной резервной копии. Это происходит потому, что база данных master не синхронизована с базой данных пользователя. Компонент SQL Server Database Engine не может ни обнаружить, ни предотвратить возникновение этой проблемы. Все более поздние разностные резервные копии не будут основаны на последней полной резервной копии, что может привести к непредсказуемым результатам. Чтобы установить новую основу для разностной копии, рекомендуется создать полную резервную копию базы данных.

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

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

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

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