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


Применение резервных копий журналов транзакций (SQL Server)

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

Этот раздел относится только к модели полного восстановления и модели восстановления с неполным протоколированием.

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

Требования к восстановлению резервных копий журналов транзакций

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

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

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

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

    Совет

    Рекомендуется восстановить все резервные копии журналов (RESTORE LOG *database_name* WITH NORECOVERY). Затем, после восстановления последней резервной копии журнала, восстановите базу данных в отдельной операции (RESTORE DATABASE *database_name* WITH RECOVERY).

Журналы восстановления и транзакций

После завершения операции восстановления и восстановления базы данных выполняется процесс восстановления для обеспечения целостности базы данных. Дополнительные сведения о процессе восстановления см. в статье Обзор процессов восстановления (SQL Server).

После завершения процесса восстановления база данных переходит в режим "в сети", и к ней больше невозможно применить резервные копии журнала транзакций. Например, серия резервных копий журнала транзакций содержит долго выполняющуюся транзакцию. Начало транзакции записано в первой резервной копии журнала транзакций, а конец транзакции записан во второй резервной копии журнала транзакций. В первой резервной копии журнала транзакций нет записи об операции фиксации или отката. Если операция восстановления запускается при применении первой резервной копии журнала транзакций, то долго выполняющаяся транзакция рассматривается как незавершенная, а изменения в данных, записанные в первой резервной копии журнала транзакций, будут отменены. SQL Server не разрешает применять вторую резервную копию журнала транзакций после этой точки.

Примечание.

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

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

Предполагается такая последовательность событий.

Time Событие
8:00 Создание резервной копии базы данных для создания полной резервной копии базы данных.
Полдень Резервное копирование журнала транзакций.
16:00 Резервное копирование журнала транзакций.
18:00 Создание резервной копии базы данных для создания полной резервной копии базы данных.
20:00 Резервное копирование журнала транзакций.
21:45 Произошел сбой.

Описание этой последовательности резервных копий см. в разделе "Резервные копии журналов транзакций" (SQL Server).

Чтобы восстановить базу данных в состоянии в 9:45 (точка сбоя), можно использовать любой из следующих альтернативных процедур:

Альтернативный способ 1. Восстановление базы данных с помощью последней полной резервной копии базы данных

  1. Создайте резервную копию заключительного фрагмента активного журнала транзакций на момент точки сбоя.

  2. Не восстанавливайте полную резервную копию базы данных 8:00. Вместо этого восстановите более позднюю резервную копию базы данных 6:00 вечера, а затем примените резервную копию 8:00 P.M. log и резервную копию журнала хвоста.

Альтернативный способ 2. Восстановление базы данных с использованием более ранней полной резервной копии базы данных

Этот альтернативный процесс полезен, если проблема не позволяет использовать полную резервную копию базы данных 6:00. Этот процесс занимает больше времени, чем восстановление из полной резервной копии базы данных 6:00.

  1. Создайте резервную копию заключительного фрагмента активного журнала транзакций на момент точки сбоя.

  2. Восстановите полную резервную копию базы данных 8:00, а затем восстановите все четыре резервные копии журнала транзакций в последовательности. Это позволяет произвести накат всех завершенных транзакций вплоть до 21:45.

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

В некоторых случаях журналы транзакций могут также использоваться для восстановления базы данных на определенный момент времени. Дополнительные сведения см. в разделе "Восстановление базы данных SQL Server до точки во времени" (модель полного восстановления).

Связанные задачи

Использование резервной копии журнала транзакций

Восстановление до нужной точки восстановления

Восстановление базы данных после восстановления резервных копий с параметром WITH NORECOVERY

См. также

Журнал транзакций (SQL Server)
Руководство по архитектуре журнала транзакций SQL Server и управлению им