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


Как настраивать, обслуживать и переводить в оперативный режим сервер «горячего» резервирования (Transact-SQL)

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

Создание резервных копий на сервере-источнике

  1. Для создания полной резервной копии выполните инструкцию BACKUP DATABASE.

  2. Для создания резервной копии журнала транзакций выполните инструкцию BACKUP LOG.

  3. Повторите шаг 2 для каждого журнала транзакций, который нужно создать.

Настройка и обслуживание резервного сервера

  1. Для восстановления полной резервной копии, созданной в шаге 1 на сервере-источнике, выполните инструкцию RESTORE DATABASE с предложением NORECOVERY.

  2. Для восстановления резервной копии каждого журнала транзакций, созданного в шаге 2 на сервере-источнике, выполните инструкцию RESTORE LOG с предложением STANDBY. Укажите имя файла отката, в котором находится содержимое измененных страниц данных на момент отката незафиксированных транзакций для этих страниц.

    ms178034.note(ru-ru,SQL.90).gifПримечание.
    Для повышения производительности при применении нескольких журналов регистрации используйте предложение WITH NORECOVERY. Иногда резервный файл необходим только для чтения, а резервная копия будет использоваться в случае, если сервер-источник находится в автономном режиме.
  3. Повторите шаг 2 для каждого журнала транзакций, созданного на сервере-источнике.

Перевод резервного сервера в оперативный режим (сбой сервера-источника)

  1. Если возможно, создайте резервную копию активного журнала транзакций (его заключительного фрагмента). Для создания резервной копии заключительного фрагмента журнала в случае, если не возможен нормальный запуск базы данных, выполните в базе данных-источнике инструкцию BACKUP LOG с предложением WITH NO_TRUNCATE. Это последняя резервная копия журнала транзакций, примененная к резервному серверу перед переводом его в оперативный режим. Дополнительные сведения см. в разделе Как создавать резервные копии журналов транзакций (Transact-SQL).

  2. Чтобы применить к резервному серверу все резервные копии журнала транзакций, включая копию, сделанную в шаге 1, выполните инструкцию RESTORE LOG с предложением STANDBY.

    ms178034.note(ru-ru,SQL.90).gifПримечание.
    Для повышения производительности при применении нескольких журналов регистрации используйте предложение WITH NORECOVERY. Пример того, когда использовать предложение WITH STANDBY, а когда WITH NORECOVERY, см. ниже.
  3. Чтобы восстановить базу данных и перевести резервный сервер в оперативный режим, выполните инструкцию RESTORE DATABASE WITH RECOVERY.

Пример

В этом примере база данных MyAdvWorks устанавливается на резервный сервер. Между операциями восстановления эту базу данных можно использовать в режиме только для чтения.

-- Restore the initial full backup on the standby server.
USE master
GO
RESTORE DATABASE MyAdvWorks
   FROM MyAdvWorks_1 
   WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyAdvWorks
   FROM MyAdvWorks_log1
   WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the next transaction log backup.
RESTORE LOG MyAdvWorks
   FROM MyAdvWorks_log2
   WITH STANDBY = 'c:\undo.ldf'
GO
-- Repeat for each transaction log backup created on the 
-- primary server.
--
-- Time elapses.. .. ..
--
-- The primary server has failed. Back up the 
-- tail of the transaction log on the primary server.
BACKUP LOG MyAdvWorks
   TO MyAdvWorks_log3
   WITH NO_TRUNCATE
GO
-- Apply the final (active) transaction log backup
-- to the standby server. All preceding transaction
-- log backups must have been already applied.
RESTORE LOG MyAdvWorks
   FROM MyAdvWorks_log3
   WITH NORECOVERY ''
GO
-- Recover the database on the standby server, 
-- making it available for normal operations.
RESTORE DATABASE MyAdvWorks
   WITH RECOVERY
GO

См. также

Задачи

Как создать резервную копию журнала транзакций при повреждении базы данных (Transact-SQL)

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

Использование серверов, поддерживающих «горячее» резервирование

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

RESTORE (Transact-SQL)
Восстановление базы данных на момент времени в пределах резервной копии
Учебник по среде SQL Server Management Studio

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

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