Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Эта статья относится только к резервному копированию и восстановлению баз данных SQL Server, использующих полные или массовые модели восстановления.
Резервная копия хвоста журнала транзакций сохраняет все записи журнала, которые еще не были включены в резервную копию ( хвост журнала), чтобы предотвратить потерю данных и сохранить целостность цепочки журналов. Прежде чем восстановить базу данных SQL Server до последней точки во времени, необходимо создать резервную копию хвоста журнала транзакций. Резервная копия tail-log — это последняя резервная копия плана восстановления для базы данных.
Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала. Если точка восстановления содержится в более ранней резервной копии журнала транзакций, резервная копия хвоста журнала не требуется. Резервная копия tail-log не требуется при перемещении или замене (перезаписи) базы данных и не требуется восстановить ее до точки времени после последней резервной копии.
Сценарии, в которых требуется резервное копирование хвоста журнала
Мы рекомендуем создать резервную копию заключительного фрагмента журнала транзакций в следующих случаях:
Если база данных находится в режиме «в сети» и следующим действием над базой данных должна быть операция восстановления, то прежде необходимо выполнить резервное копирование заключительного фрагмента журнала. Чтобы избежать ошибки при работе с сетевой базой данных, необходимо использовать параметр
WITH NORECOVERYв инструкции BACKUP Transact-SQL.Если база данных, работающая в режиме «вне в сети», не запускается и необходимо восстановить базу данных, то в первую очередь необходимо выполнить резервное копирование заключительного фрагмента журнала. Так как в настоящее время транзакции не могут выполняться, используйте
WITH NO_TRUNCATEэтот параметр.NO_TRUNCATEфактически аналогично резервной копии журнала транзакций, предназначенной только для копирования. ИспользованиеWITH NORECOVERYявляется необязательным, так как в настоящее время транзакции не могут возникать.Если база данных повреждена, попробуйте создать резервную копию tail-log с помощью
WITH CONTINUE_AFTER_ERRORпараметра инструкцииBACKUP.В поврежденной базе данных резервное копирование хвоста журнала может быть выполнено только в том случае, если файлы журналов не повреждены, база данных находится в состоянии, поддерживающем резервные копии tail-log, и база данных не содержит никаких массовых изменений. Если не удается создать резервную копию tail-log, все транзакции, зафиксированные после последней резервной копии журнала, будут потеряны.
В следующей таблице приведены параметры NORECOVERY, NO_TRUNCATE и CONTINUE_AFTER_ERROR для BACKUP.
| BACKUP Опция LOG | Комментарии |
|---|---|
NORECOVERY |
Используйте NORECOVERY всякий раз, когда вы планируете продолжить операцию восстановления в базе данных.
NORECOVERY принимает базу данных в состояние восстановления. Этот шаг гарантирует, что база данных не изменится после резервного копирования хвоста журнала транзакций. Журнал усекается, если также не указан параметр NO_TRUNCATE или параметр COPY_ONLY.Важно: избегайте использования NO_TRUNCATE, за исключением случаев, когда база данных повреждена или находится в автономном режиме. Чтобы получить монопольный доступ, может потребоваться перевести базу данных в однопользовательский режим перед выполнением восстановления с помощью NORECOVERY. После восстановления снова задайте для базы данных многопользовательский режим. |
CONTINUE_AFTER_ERROR |
Используйте CONTINUE_AFTER_ERROR только при резервном копировании хвоста поврежденной базы данных.При резервном копировании хвоста журнала поврежденной базы данных некоторые метаданные, обычно записанные в резервных копиях журналов, могут быть недоступны. Для получения дополнительных сведений см. следующий раздел. |
Резервные копии tail-log с неполными метаданными резервного копирования
Резервное копирование заключительного фрагмента журнала захватывает конец журнала даже в тех случаях, когда база данных работает вне сети, повреждена или в ней не хватает файлов данных. Это может привести к получению неполных метаданных от команд получения сведений о восстановлении и msdb. Однако неполны только метаданные; захваченный журнал полон и пригоден для использования.
Если резервная копия хвоста журнала транзакций содержит неполные метаданные, в таблице backupset для has_incomplete_metadata задается значение 1. Кроме того, в выходных данных RESTORE HEADERONLY для HasIncompleteMetadata задано значение 1.
Если метаданные в резервной копии tail-log неполны, в таблице backupfilegroup отсутствует большая часть сведений о файловых группах на момент создания резервной копии tail-log. Большинство столбцов таблицы backupfilegroupNULL; значение имеют только следующие столбцы:
backup_set_idfilegroup_idtypetype_descis_readonly
Связанные задачи
Сведения о создании резервного копирования в журнале tail-log см. в статье Резервное копирование журнала транзакций при повреждении базы данных (SQL Server).
Чтобы восстановить резервную копию журнала транзакций, см. статью "Восстановление резервного копирования журнала транзакций" (SQL Server).
Связанный контент
- BACKUP (Transact-SQL)
- RESTORE инструкции (Transact-SQL)
- Резервное копирование и восстановление баз данных SQL Server
- Резервные копии с параметром COPY_ONLY
- Резервные копии журналов транзакций (SQL Server)
- Применение резервных копий журналов транзакций (SQL Server)
- Руководство по архитектуре журнала транзакций SQL Server и управлению