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


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