Восстановление файлов из резервных копий (модель полного восстановления)

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

Цель восстановления файлов — восстановить один или несколько поврежденных файлов, не восстанавливая всю базу данных. Все выпуски SQL Server поддерживают восстановление файлов при работе базы данных в автономном режиме (восстановление страниц в автономном режиме). Выпуски SQL Server 2005 Standard Edition, SQL Server 2005 Express Edition и SQL Server 2005 Workgroup Edition, а также более поздние версии поддерживают только автономное восстановление. Кроме того, для восстановления из копий файлов в первичной файловой группе всегда необходим перевод базы данных в автономный режим. Выпуск SQL Server 2005 Enterprise Edition и более поздние версии используют автономное восстановление, если база данных уже находится в автономном режиме.

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

Существуют следующие сценарии восстановления файлов.

  • Восстановление файлов в автономном режиме

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

  • Оперативное восстановление файлов

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

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

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

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

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

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

Восстановление поврежденного файла или нескольких файлов из резервной копии или разностной резервной копии файлов.

  1. Создайте резервную копию заключительного фрагмента журнала активного журнала транзакций.

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

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

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

  2. Восстановите каждый поврежденный файл из самой последней резервной копии этого файла.

  3. Восстановите самую последнюю разностную резервную копию файлов, если она существует, для каждого восстановленного файла.

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

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

  5. Восстановите базу данных по журналам транзакций.

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

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

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

Дополнительные разделы

Последовательность восстановления Transact-SQL для автономного восстановления файлов (модель полного восстановления)

Сценарий восстановления файлов состоит из одной последовательности восстановления, которая копирует, накатывает все транзакции и восстанавливает соответствующие данные.

В следующем коде Transact-SQL показаны важные параметры RESTORE последовательности восстановления файлов. Синтаксис и прочие подробности, несущественные для данной цели, опущены.

Пример демонстрирует автономное восстановление двух вторичных файлов A и B, с NORECOVERY. Далее, после применения двух резервных копий журналов с параметром NORECOVERY, следует восстановление резервной копии заключительного фрагмента журнала с параметром RECOVERY. Пример начинается с перевода файла в автономный режиме для автономного восстановления файлов.

--Take the file offline.
ALTER DATABASE database_name MODIFY FILE SET OFFLINE
-- Back up the currently active transaction log.
BACKUP LOG database_name
   TO <tail_log_backup>
   WITH NORECOVERY
GO 
-- Restore the files.
RESTORE DATABASE database_name FILE=<name> 
   FROM <file_backup_of_file_A> 
   WITH NORECOVERY
RESTORE DATABASE database_name FILE=<name> ......
   FROM <file_backup_of_file_B> 
   WITH NORECOVERY
-- Restore the log backups.
RESTORE LOG database_name FROM <log_backup> 
   WITH NORECOVERY
RESTORE LOG database_name FROM <log_backup> 
   WITH NORECOVERY
RESTORE LOG database_name FROM <tail_log_backup> 
   WITH RECOVERY

См. также

Справочник

Основные понятия

Другие ресурсы