Восстановление переименованных файлов и файловых групп

Имя файла или файловой группы можно изменить и даже использовать повторно в другом месте. Компонент SQL Server Database Engine отслеживает файлы и файловые группы по идентификаторам GUID. В большинстве случаев операция восстановления может определить, что имя изменилось, и правильно его обработать.

Способ обработки измененного имени зависит от режима восстановления файла (оперативный или автономный).

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

  • Во время оперативного восстановления каталог базы данных доступен. Если во время восстановления компонент Database Engine обнаруживает новое имя файла или файловой группы, он находит в каталоге базы данных соответствующий идентификатор GUID и восстанавливает файл или группу файлов с данным идентификатором, если они есть в резервной копии.

    Если задано старое имя, его нет в каталоге. Если идентификатор GUID совпадает с идентификатором GUID текущего файла или файловой группы в резервной копии, то компонент Database Engine восстанавливает их из резервной копии.

    Если идентификатор GUID из резервной копии не соответствует ни одному существующему файлу или файловой группе, происходит ошибка.

Как восстановление обрабатывает повторно используемые имена файлов и файловых групп

Имя удаленного файла или файловой группы можно использовать повторно. Например, старым именем группы файлов можно назвать новый файл. Эта ситуация подобна переименованию файла или файловой группы. Тем не менее, при повторном использовании имен одно и то же имя ссылается на различные объекты в разные моменты времени.

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

Если с момента последнего резервного копирования файл был изменен, а старым именем назван другой файл, то компонент Database Engine будет обрабатывать его в зависимости от того, доступен ли каталог и содержит ли он это имя.

  • Если каталог базы данных доступен и содержит имя, то компонент Database Engine определяет идентификатор GUID соответствующего файла или файловой группы и восстанавливает объекты с этим идентификатором из резервной копии. Если имя не соответствует ни одному существующему файлу или файловой группе, происходит ошибка.

  • Если каталог недоступен (например, когда база данных восстанавливается в автономном режиме), то компонент Database Engine определяет объект, который нужно восстановить, на основе сведений из резервной копии, как описано выше.

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