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

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

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

В этом разделе:

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

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

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

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

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

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

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

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

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

    СоветСовет

    Лучше всего восстановить все резервные журналы (RESTORE LOG database_name WITH NORECOVERY). После восстановления последней резервной копии журнала восстановите базу данных отдельной операцией: (RESTORE DATABASE database_name WITH RECOVERY).

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

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

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

ПримечаниеПримечание

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

Время

Событие

8:00

Создание резервной копии базы данных для создания полной резервной копии базы данных.

Полдень

Резервное копирование журнала транзакций.

16:00

Резервное копирование журнала транзакций.

18:00

Создание резервной копии базы данных для создания полной резервной копии базы данных.

20:00

Резервное копирование журнала транзакций.

21:45

Произошел сбой.

ПримечаниеПримечание

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

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

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

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

  2. Не восстанавливайте полную резервную копию базы данных, созданную в 08:00:00. Вместо этого восстановите последнюю полную резервную копию, созданную в 18:00:00 а затем примените резервную копию журнала и резервную копию заключительного фрагмента журнала, созданные в 20:00:00.

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

ПримечаниеПримечание

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

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

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

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

ПримечаниеПримечание

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

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

Журнал транзакций (SQL Server)