Восстановление базы данных без восстановления данных (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)