Применение резервных копий журнала транзакций
Этот раздел относится только к модели полного восстановления и модели восстановления с неполным протоколированием.
Этот раздел описывает применение резервных копий журнала транзакции как части восстановления базы данных SQL Server. Для применения резервной копии журнала транзакций необходимо выполнить следующие требования.
Необходимо вначале восстановить предыдущую полную или разностную резервную копию базы данных.
Все журналы транзакций, созданные после указанной полной или разностной резервной копии, должны восстанавливаться в хронологическом порядке. Если резервная копия журнала транзакций в этой цепочке журналов утрачена или повреждена, то восстановить можно только журналы транзакций до отсутствующего журнала.
База данных еще не восстановлена. База данных не может быть восстановлена до тех пор, пока не применен последний журнал транзакций. Если база данных восстанавливается после восстановления одной из промежуточных резервных копий журнала транзакций, расположенной перед концом цепочки журналов, базу данных после этой точки можно восстановить без перезапуска всей последовательности восстановления, начинающейся с полной резервной копии базы данных.
Журналы восстановления и транзакций
По завершении операции восстановления и восстановления базы данных будет произведен откат всех незавершенных транзакций. Этот шаг называется стадией отката. Откат требуется для восстановления целостности базы данных. После отката база данных включается в оперативный режим, и больше никакие резервные копии журнала транзакций не могут быть применены.
Например, серия резервных копий журнала транзакций содержит долго выполняющуюся транзакцию. Начало транзакции записано в первой резервной копии журнала транзакций, а конец транзакции записан во второй резервной копии журнала транзакций. В первой резервной копии журнала транзакций нет записи об операции фиксации или отката. Если операция восстановления запускается, когда применяется первая резервная копия журнала транзакций, долго выполняющаяся транзакция рассматривается как незавершенная, а изменения данных, записанные в первой резервной копии журнала транзакций, будут отменены. После этой точки SQL Server не разрешает применение второй резервной копии журнала транзакций.
Примечание |
---|
В некоторых обстоятельствах при восстановлении журнала можно явно добавить файл. Дополнительные сведения см. в разделе Контролирование создания добавленных файлов во время наката. |
Наличие достаточного количества резервных копий журналов для последовательности восстановления
Должно быть достаточно записей в резервных копиях журнала, чтобы провести полную последовательность восстановления. Необходимые резервные копии журнала, включая при необходимости резервные копии конца журнала, должны быть доступны перед запуском последовательности восстановления.
Использование резервных копий журнала для восстановления до точки сбоя
Предполагается такая последовательность событий.
Время |
Событие |
---|---|
8:00 |
Создание резервной копии базы данных для создания полной резервной копии базы данных. |
Полдень |
Создание резервной копии журнала транзакций. |
16:00 |
Создание резервной копии журнала транзакций. |
18:00 |
Создание резервной копии базы данных для создания полной резервной копии базы данных. |
20:00 |
Создание резервной копии журнала транзакций. |
21:45 |
Произошел сбой. |
Примечание |
---|
Объяснение этого примера последовательности резервных копий см. в разделе Создание резервных копий журналов транзакций. |
Чтобы восстановить базу данных до ее состояния в 21:45 (точка сбоя), может быть использована любая из следующих альтернативных процедур.
Вариант 1. Восстановление базы данных с помощью последней полной резервной копии базы данных
Создайте резервную копию заключительного фрагмента активного журнала транзакций на момент точки сбоя.
Не восстанавливайте полную резервную копию базы данных, созданную в 08:00:00. Вместо этого восстановите последнюю полную резервную копию базы данных, сделанную в 18:00, а затем примените резервную копию журнала, сделанную в 20:00 и резервную копию заключительного фрагмента журнала.
Вариант 2. Восстановление базы данных с использованием более ранней полной резервной копии базы данных
Примечание |
---|
Этот вариант можно использовать, если проблема не позволяет воспользоваться полной резервной копией базы данных от 18:00. Этот процесс занимает больше времени, чем восстановление полной резервной копии базы данных от 18:00. |
Создайте резервную копию заключительного фрагмента активного журнала транзакций на момент точки сбоя.
Восстановите полную резервную копию базы данных от 8:00, а затем последовательно восстановите все четыре резервные копии журнала транзакций. Это позволяет произвести накат всех завершенных транзакций вплоть до 21:45.
Этот вариант указывает на избыточную безопасность, предлагаемую цепочкой резервных копий журнала транзакций в серии полных резервных копий базы данных.
Использование резервных копий журнала для восстановления на определенный момент времени
В некоторых случаях журналы транзакций могут также использоваться для восстановления базы данных на определенный момент времени. Дополнительные сведения см. в разделе Восстановление базы данных на момент времени в пределах резервной копии.
Применение резервного копирования журнала транзакций
Применение WITH NORECOVERY для восстановления резервных копий журнала:
RESTORE LOG имя_базы_данных FROM <устройство_резервного_копирования> WITH NORECOVERY
После восстановления последней резервной копии журнала восстановите базу данных отдельной операцией:
RESTORE DATABASE имя_базы_данных WITH RECOVERY
Использование резервной копии журнала транзакций
Как применить резервную копию журналов транзакций (Transact-SQL)
Как восстановить резервную копию журнала транзакций (среда SQL Server Management Studio)
Восстановление до нужной точки восстановления