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

Сведения, содержащиеся в данном разделе, относятся только к тем базам данных, в которых используется модель полного восстановления или модель восстановления с неполным протоколированием.

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

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

Рекомендуется производить создание резервных копий журналов достаточно часто в соответствии с требованиями предприятия, а особенно со степенью толерантности к потерям данных, например из-за повреждения диска с журналами. Частота создания резервных копий журнала зависит от степени толерантности к возможности потери данных и от того, какое количество резервных копий журнала получится хранить и в потенциале восстанавливать, а также каким количеством управлять. Возможно, создания резервных копий журналов один раз в 15-30 минут может оказаться достаточно. Если предприятию необходимо минимизировать вероятность потери данных, следует увеличить частоту создания резервных копий журнала. Более частое создание резервных копий журнала предоставляет преимущество за счет более частого усечения журнала, результатом которого является меньший размер файлов журнала.

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

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

По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок служб SQL Server и в журнал системных событий. Если создание резервной копии журналов производится очень часто, сообщения об успешном завершении накапливаются очень быстро. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений. Если работа существующих сценариев не зависит от этих записей, то их можно отключить с помощью флага трассировки 3226. Дополнительные сведения см. в разделе Флаги трассировки (Transact-SQL).

Цепочка журналов

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

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

Чтобы восстановить базу данных на момент точки сбоя, нужна неповрежденная цепочка журналов. Непрерывная последовательность резервных копий журналов должна следовать до точки сбоя. Точка начала этой последовательности зависит от применяемого типа резервной копии: резервная копия базы данных, частичная резервная копия или резервная копия файлов. В случае резервной копии базы данных или частичной резервной копии последовательность резервных копий журнала должна начинаться от конца резервной копии базы данных или частичной резервной копии. В наборе резервных копий файлов последовательность резервных копий журналов должна следовать от начала полного набора резервных копий файлов.

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

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

Для идентификации резервной копии, которая начинает цепочку журналов в наборе резервных копий, выполните запрос столбца begins_log_chain таблицы backupset или выполните инструкцию RESTORE HEADERONLY на устройстве резервного копирования и просмотрите в результирующем наборе столбец BeginsLogChain.

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

Важное примечаниеВажно!

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

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

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

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

Важное примечаниеВажно!

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

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