Резервные копии журналов (SQL Server)
Область применения: SQL Server
Эта статья относится только к резервному копированию и восстановлению баз данных SQL Server, использующих полные или массовые модели восстановления.
Резервная копия tail-log записывает все записи журнала, которые еще не были сохранены ( хвост журнала), чтобы предотвратить потерю работы и сохранить цепочку журналов без изменений. Прежде чем восстановить базу данных 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
. Однако несмотря на неполноту метаданных, захваченный журнал будет полным и готовым к использованию.
Если резервная копия tail-log содержит неполные метаданные, в таблице has_incomplete_metadata
набора резервных копий задано значение 1
. Кроме того, в выходных данных RESTORE HEADERONLY HasIncompleteMetadata
задано значение 1
.
Если метаданные в резервном копировании tail-log неполны, таблица backupfilegroup отсутствует большая часть сведений о файловых группах во время резервного копирования tail-log. backupfilegroup
Большинство столбцов таблицы : NULL
единственные значимые столбцы:
backup_set_id
filegroup_id
type
type_desc
is_readonly
Связанные задачи
Сведения о создании резервного копирования в журнале tail-log см. в статье Резервное копирование журнала транзакций при повреждении базы данных (SQL Server).
Чтобы восстановить резервную копию журнала транзакций, см. статью "Восстановление резервного копирования журнала транзакций" (SQL Server).
Связанный контент
- BACKUP (Transact-SQL)
- Инструкции RESTORE (Transact-SQL)
- Резервное копирование и восстановление баз данных SQL Server
- Резервные копии только для копирования (SQL Server)
- Резервные копии журналов транзакций (SQL Server)
- Применение резервных копий журналов транзакций (SQL Server)
- Руководство по архитектуре журнала транзакций SQL Server и управлению