Поделиться через


Восстановление базы данных без восстановления данных (Transact-SQL)

Область применения:SQL Server

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

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

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

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

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

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

Синтаксис инструкции RESTORE для восстановления базы данных только для целей восстановления выглядит следующим образом:

RESTORE DATABASE *database_name* WITH RECOVERY

Примечание.

Предложение FROM =<backup_device> не используется для восстановления, потому что резервное копирование не требуется.

Пример

В следующем примере демонстрируется восстановление структуры базы данных AdventureWorks2022 в ходе операции восстановления копии базы данных без восстановления пользовательских данных.

-- Restore database using WITH RECOVERY.  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY  

Восстановление только файлов

Восстановление файлов только для восстановления может быть полезно в следующей ситуации.

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

Операция восстановления только для восстановления активирует данные в файловой группе, которая была в автономном режиме; при этом не выполняется ни копирование данных, ни повтор, ни стадия отката. Сведения о этапах восстановления см. в разделе "Обзор восстановления и восстановления" (SQL Server).

Синтаксис команды RESTORE для восстановления только файла:

RESTORE DATABASE *database_name* { FILE **=**_logical_file_name_ | FILEGROUP **=**_logical_filegroup_name_ }[ **,**...*n* ] WITH RECOVERY

Пример

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

RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;  

Примеры завершения сценария поэтапного восстановления с восстановлением только по журналу транзакций

Простая модель восстановления

Модель полного восстановления

См. также

Восстановление в сети (SQL Server)
Восстановление по частям (SQL Server)
Восстановление файлов (простая модель восстановления)
Восстановление файлов (модель полного восстановления)
RESTORE (Transact-SQL)
Обзор процессов восстановления (SQL Server)