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


Как выполнить восстановление на момент времени (Transact-SQL)

В этом разделе разъясняется процедура восстановления на момент времени.

Восстановление на определенный момент времени

  1. Выполните инструкцию RESTORE DATABASE с параметром NORECOVERY.

  2. Выполните инструкцию RESTORE LOG для применения всех резервных копий журнала транзакций, указав при этом:

    • имя базы данных, к которой применяется журнал транзакций;
    • устройство резервного копирования, откуда происходит восстановление резервной копии журнала транзакций;
    • параметры RECOVERY и STOPAT. Если в резервной копии журнала транзакций не содержится требуемое время (например, если указанное время выходит за рамки времени, отраженного в журнале транзакций), создается предупреждение и база данных остается невосстановленной.

Пример

В данном примере показано восстановление базы данных AdventureWorks в состоянии на 12:00 AM on April 15, 2005. Последовательность восстановления устанавливает полную резервную копию с помощью параметра NORECOVERY и применяет три резервных копии журнала, указывая параметры RECOVERY и STOPAT в каждой инструкции RESTORE LOG. Устройство резервного копирования — логическое устройство резервного копирования с именем AdventureWorksBackups.

ms179451.note(ru-ru,SQL.90).gifВажно!
В базе данных AdventureWorks используется простая модель восстановления. Чтобы разрешить создание резервных копий журналов, перед проведением полного резервного копирования база данных должна быть настроена на использование полной модели восстановления путем выполнения инструкции ALTER DATABASE AdventureWorks SET RECOVERY FULL.
-- Restore the full database backup.
RESTORE DATABASE AdventureWorks
   FROM AdventureWorksBackups 
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
   GO 

См. также

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

Восстановление на определенный момент времени

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

RESTORE (Transact-SQL)
Инструкция RESTORE HEADERONLY (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005