Резервные копии заключительного фрагмента журнала (SQL Server)

Применимо к: SQL Server (все поддерживаемые версии)

В данном разделе рассматриваются вопросы резервного копирования и восстановления только тех баз данных SQL Server , которые используют модель полного восстановления или модель восстановления с неполным протоколированием.

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

Примечание

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

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

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

  • Если база данных находится в режиме «в сети» и следующим действием над базой данных должна быть операция восстановления, то прежде необходимо выполнить резервное копирование заключительного фрагмента журнала. Чтобы избежать ошибки для оперативной базы данных, необходимо использовать ... ПАРАМЕТР WITH NORECOVERY инструкции BACKUP Transact-SQL.

  • Если база данных, работающая в режиме «вне в сети», не запускается и необходимо восстановить базу данных, то в первую очередь необходимо выполнить резервное копирование заключительного фрагмента журнала. Так как в это время никакие транзакции не выполняются, параметр WITH NORECOVERY использовать не обязательно.

  • Если база данных повреждена, попытайтесь получить резервную копию заключительного фрагмента журнала, используя параметр WITH CONTINUE_AFTER_ERROR инструкции BACKUP.

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

В следующей таблице представлена сводка параметров BACKUP NORECOVERY и CONTINUE_AFTER_ERROR.

Параметр BACKUP LOG Комментарии
NORECOVERY Если планируется продолжить операцию восстановления базы данных, используйте параметр NORECOVERY. NORECOVERY переводит базу данных в состояние восстановления. Это гарантирует, что после создания резервной копии заключительного фрагмента журнала база данных не изменится. Если параметры NO_TRUNCATE или COPY_ONLY не заданы, журнал усекается.

Внимание! Параметр NO_TRUNCATE рекомендуется использовать, только если база данных повреждена. Возможно, потребуется перевести базу данных в однопользовательский режим, чтобы получить монопольный доступ до выполнения RESTORE WITH NORECOVERY. После восстановления снова задайте для базы данных многопользовательский режим.
CONTINUE_AFTER_ERROR Параметр CONTINUE_AFTER_ERROR следует указывать только в том случае, если создается резервная копия заключительного фрагмента журнала поврежденной базы данных.

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

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

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

Если резервная копия заключительного фрагмента журнала содержит неполные метаданные, то параметр has_incomplete_metadata в таблице backupset принимает значение 1. Кроме того, выходной аргумент HasIncompleteMetadataинструкции RESTORE HEADERONLY принимает значение 1.

Если метаданные в резервной копии заключительного фрагмента журнала неполные, то в таблице backupfilegroup большая часть сведений о файловых группах того времени в резервной копии заключительного фрагмента журнала будет утеряна. Большинство столбцов таблицы backupfilegroup содержит значение NULL, другие значения имеют следующие столбцы:

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

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

Чтобы создать резервную копию заключительного фрагмента журнала, см. статью "Резервное копирование журнала транзакций при повреждении базы данных (SQL Server)".

Сведения о восстановлении резервной копии журнала транзакций см. в разделе "Восстановление резервной копии журнала транзакций(SQL Server)".

См. также:

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
Резервное копирование и восстановление баз данных SQL Server
Резервные копии только для копирования (SQL Server)
Резервные копии журналов транзакций (SQL Server)
Применение резервных копий журналов транзакций (SQL Server)
Руководство по архитектуре журнала транзакций SQL Server и управлению им