Восстановление в сети (SQL Server)

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

Восстановление в сети поддерживается только в выпуске SQL Server Enterprise. В настоящем выпуске восстановление файлов, страниц или поэтапное восстановление выполняется по умолчанию в режиме «в сети». Этот раздел относится только к базам данных, содержащим несколько файлов или файловых групп, а также (для простой модели восстановления) к файловым группам, доступным только для чтения.

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

Примечание

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

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

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

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

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

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

Примечание

Если в базе данных используется модель восстановления с неполным протоколированием, то перед запуском восстановления в сети рекомендуется переключиться на модель полного восстановления. Дополнительные сведения см. в разделе "Просмотр" или "Изменение модели восстановления" базы данных (SQL Server).

Важно!

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

Внимание!

При использовании резервных копий моментальных снимков нельзя выполнять Online Restore. Дополнительные сведения о резервном копировании путем создания моментального снимкасм. в статье Резервные копии моментальных снимков файлов для файлов базы данных в Azure.

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

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

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

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

    Примечание

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

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

    Примечание

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

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

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

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

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

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

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

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

Примеры

Примечание

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

Связанные задачи

См. также:

Файлы из резервных копий (модель полного восстановления)
Восстановления файлов (простая модель восстановления)
Восстановление страниц (SQL Server)
Поэтапное восстановление (SQL Server)
Обзор процессов восстановления (SQL Server)