Резервные копии заключительного фрагмента журнала (SQL Server)
В данном разделе рассматриваются вопросы резервного копирования и восстановления только тех баз данных SQL Server , которые используют модель полного восстановления или модель восстановления с неполным протоколированием.
В резервную копию заключительного фрагмента журнала попадают все записи, резервная копия которых еще не была создана ( заключительный фрагмент журнала), что позволяет предотвратить потерю работы и сохранить неповрежденную цепочку журналов. Для восстановления базы данных SQL Server на последний момент времени необходимо предварительно выполнить резервное копирование заключительного фрагмента журнала ее транзакций. Заключительный фрагмент журнала является становится последней рассматриваемой частью резервной копии в плане восстановления базы данных.
Примечание
Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала. Резервная копия заключительного фрагмента журнала не нужна, если точка восстановления содержится в более ранней резервной копии журнала. Кроме того, резервная копия заключительного фрагмента журнала не требуется при перемещении или замещении (перезаписи) базы данных, при котором не нужно восстанавливать ее на определенный момент времени после создания ее последней резервной копии.
Сценарии, в которых требуется резервная копия заключительного фрагмента журнала.
Рекомендуется формировать резервную копию заключительного фрагмента журнала в следующих сценариях.
Если база данных находится в режиме «в сети» и следующим действием над базой данных должна быть операция восстановления, то прежде необходимо выполнить резервное копирование заключительного фрагмента журнала. Чтобы избежать ошибок для оперативной базы данных, необходимо использовать ... Параметр WITH NORECOVERY инструкции Transact-SQL BACKUP.
Если база данных, работающая в режиме «вне в сети», не запускается и необходимо восстановить базу данных, то в первую очередь необходимо выполнить резервное копирование заключительного фрагмента журнала. Так как в это время никакие транзакции не выполняются, параметр WITH NORECOVERY использовать не обязательно.
Если база данных повреждена, попытайтесь получить резервную копию заключительного фрагмента журнала, используя параметр WITH CONTINUE_AFTER_ERROR инструкции BACKUP.
Резервное копирование заключительного фрагмента журнала поврежденной базы данных может быть успешно выполнено только в том случае, если файлы журнала не повреждены, а база данных находится в режиме, который поддерживает резервное копирование заключительного фрагмента журнала, и не содержит какие-либо изменения с неполным протоколированием. Если резервная копия заключительного фрагмента журнала не может быть создана, то любые транзакции, зафиксированные после создания последней резервной копии журнала, будут потеряны.
В следующей таблице представлена сводка параметров BACKUP NORECOVERY и CONTINUE_AFTER_ERROR.
Параметр BACKUP LOG | Комментарии |
---|---|
NORECOVERY | Если планируется продолжить операцию восстановления базы данных, используйте параметр NORECOVERY. NORECOVERY переводит базу данных в состояние восстановления. Это гарантирует, что после создания резервной копии заключительного фрагмента журнала база данных не изменится. Если параметры NO_TRUNCATE или COPY_ONLY не заданы, то журнал усекается. **Важно** Рекомендуется избегать использования NO_TRUNCATE, за исключением случаев повреждения базы данных. |
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)