Выполнение оперативного восстановления

Оперативное восстановление поддерживается только в SQL Server 2005 Enterprise Edition и более поздних версиях. В настоящем выпуске восстановление файлов, страниц или поэтапное восстановление выполняется по умолчанию в оперативном режиме.

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

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

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

В выпуске SQL Server 2005 Enterprise Edition и более поздних версиях оперативное восстановление выполняется автоматически и не требует участия пользователя. Если оперативное восстановление не требуется, то перед началом восстановления можно перевести базу данных в автономный режим. Дополнительные сведения см. в разделе Перевод базы данных или файла в автономный режим ниже в этом разделе.

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

Любой сценарий оперативного восстановления состоит из следующих основных шагов.

  1. Восстановление данных.

  2. Восстановление журнала с параметром WITH RECOVERY для восстановления последнего журнала. Восстановленные данные переводятся в оперативный режим.

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

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

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

Важное примечаниеВажно!

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

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

При оперативном восстановлении точкой восстановления служит точка, в которой восстанавливаемые данные в последний раз переводились в автономный режим или режим «только для чтения». Должны быть доступны все резервные копии журналов транзакций до этой точки восстановления включительно. Как правило, чтобы захватить точку восстановления, необходимо использовать для восстановления резервную копию журналов после этой точки. Единственным исключением является оперативное восстановление данных, предназначенных только для чтения, из резервной копии данных, которая сделана после перевода данных в режим «только для чтения». В этом случае резервная копия журналов не требуется.

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

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

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

    Приведенные выше сведения также относятся ко всем автономным файлам.

  • Особым случаем является файл, доступный для чтения и записи, который находился в оперативном режиме при получении первой инструкции восстановления и который автоматически был переведен этой инструкцией в автономный режим. В этом случае следует создать резервные копии журналов во время первой последовательности восстановления (последовательности из одной и нескольких инструкций RESTORE, которые восстанавливают данные, выполняют накат и восстанавливают данные по журналу). Обычно такое резервное копирование журналов должно выполняться после восстановления всех полных резервных копий и до восстановления данных. Но если для определенной файловой группы существует несколько резервных копий файлов, то ближайшей точкой восстановления журналов будет время, когда файловая группа была переведена в автономный режим. Такое резервное копирование журналов после восстановления захватывает точку, в которой файл был переведен в автономный режим. Резервное копирование после восстановления данных является необходимым, поскольку SQL Server Database Engine не может использовать оперативный журнал для оперативного восстановления.

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

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

Перевод базы данных или файла в автономный режим

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

  • При любой модели восстановления базу данных можно перевести в автономный режим с помощью следующей инструкции ALTER DATABASE:

    ALTER DATABASE имя_базы_данных SET OFFLINE

  • Кроме того, при модели полного восстановления можно принудительно перевести восстановление файла или страницы в автономный режим с помощью следующей инструкции BACKUP LOG, переводящей базу данных в состояние восстановления:

    BACKUP LOG имя_базы_данных WITH NORECOVERY.

Пока база данных остается в автономном режиме, все операции восстановления являются автономными.

Примеры

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

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