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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

В данном разделе рассматриваются вопросы резервного копирования и восстановления только тех баз данных SQL ServerSQL Server , которые используют модель полного восстановления или модель восстановления с неполным протоколированием.This topic is relevant only for backup and restore of SQL ServerSQL Server databases that are using the full or bulk-logged recovery models.

В резервную копию заключительного фрагмента журнала попадают все записи, резервная копия которых еще не была создана ( заключительный фрагмент журнала), что позволяет предотвратить потерю работы и сохранить неповрежденную цепочку журналов.A tail-log backup captures any log records that have not yet been backed up (the tail of the log) to prevent work loss and to keep the log chain intact. Для восстановления базы данных SQL ServerSQL Server на последний момент времени необходимо предварительно выполнить резервное копирование заключительного фрагмента журнала ее транзакций.Before you can recover a SQL ServerSQL Server database to its latest point in time, you must back up the tail of its transaction log. Заключительный фрагмент журнала является становится последней рассматриваемой частью резервной копии в плане восстановления базы данных.The tail-log backup will be the last backup of interest in the recovery plan for the database.

Примечание. Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала.NOTE: Not all restore scenarios require a tail-log backup. Резервная копия заключительного фрагмента журнала не нужна, если точка восстановления содержится в более ранней резервной копии журнала.You do not need a tail-log backup if the recovery point is contained in an earlier log backup. Кроме того, резервная копия заключительного фрагмента журнала не требуется при перемещении или замещении (перезаписи) базы данных, при котором не нужно восстанавливать ее на определенный момент времени после создания ее последней резервной копии.Also, a tail-log backup is unnecessary if you are moving or replacing (overwriting) a database and do not need to restore it to a point of time after its most recent backup.

Сценарии, в которых требуется резервная копия заключительного фрагмента журнала.Scenarios That Require a Tail-Log Backup

Рекомендуется формировать резервную копию заключительного фрагмента журнала в следующих сценариях.We recommend that you take a tail-log backup in the following scenarios:

  • Если база данных находится в режиме «в сети» и следующим действием над базой данных должна быть операция восстановления, то прежде необходимо выполнить резервное копирование заключительного фрагмента журнала.If the database is online and you plan to perform a restore operation on the database, begin by backing up the tail of the log. Во избежание ошибок для базы данных в режиме "в сети" необходимо использовать параметр WITH NORECOVERY инструкции BACKUP Transact-SQLTransact-SQL .To avoid an error for an online database, you must use the ... WITH NORECOVERY option of the BACKUP Transact-SQLTransact-SQL statement.

  • Если база данных, работающая в режиме «вне в сети», не запускается и необходимо восстановить базу данных, то в первую очередь необходимо выполнить резервное копирование заключительного фрагмента журнала.If a database is offline and fails to start and you need to restore the database, first back up the tail of the log. Так как в это время никакие транзакции не выполняются, параметр WITH NORECOVERY использовать не обязательно.Because no transactions can occur at this time, using the WITH NORECOVERY is optional.

  • Если база данных повреждена, попытайтесь получить резервную копию заключительного фрагмента журнала, используя параметр WITH CONTINUE_AFTER_ERROR инструкции BACKUP.If a database is damaged, try to take a tail-log backup by using the WITH CONTINUE_AFTER_ERROR option of the BACKUP statement.

    Резервное копирование заключительного фрагмента журнала поврежденной базы данных может быть успешно выполнено только в том случае, если файлы журнала не повреждены, а база данных находится в режиме, который поддерживает резервное копирование заключительного фрагмента журнала, и не содержит какие-либо изменения с неполным протоколированием.On a damaged database backing up the tail of the log can succeed only if the log files are undamaged, the database is in a state that supports tail-log backups, and the database does not contain any bulk-logged changes. Если резервная копия заключительного фрагмента журнала не может быть создана, то любые транзакции, зафиксированные после создания последней резервной копии журнала, будут потеряны.If a tail-log backup cannot be created, any transactions committed after the latest log backup are lost.

В следующей таблице представлена сводка параметров BACKUP NORECOVERY и CONTINUE_AFTER_ERROR.The following table summarizes the BACKUP NORECOVERY and CONTINUE_AFTER_ERROR options.

Параметр BACKUP LOGBACKUP LOG option КомментарииComments
NORECOVERYNORECOVERY Если планируется продолжить операцию восстановления базы данных, используйте параметр NORECOVERY.Use NORECOVERY whenever you intend to continue with a restore operation on the database. NORECOVERY переводит базу данных в состояние восстановления.NORECOVERY takes the database into the restoring state. Это гарантирует, что после создания резервной копии заключительного фрагмента журнала база данных не изменится.This guarantees that the database does not change after the tail-log backup. Если параметры NO_TRUNCATE или COPY_ONLY не заданы, журнал усекается.The log will be truncated unless the NO_TRUNCATE option or COPY_ONLY option is also specified.

Важно! Параметр NO_TRUNCATE рекомендуется использовать, только если база данных повреждена.Important: Avoid using NO_TRUNCATE, except when the database is damaged.
CONTINUE_AFTER_ERRORCONTINUE_AFTER_ERROR Параметр CONTINUE_AFTER_ERROR следует указывать только в том случае, если создается резервная копия заключительного фрагмента журнала поврежденной базы данных.Use CONTINUE_AFTER_ERROR only if you are backing up the tail of a damaged database.

При резервном копировании заключительного фрагмента журнала поврежденной базы данных, некоторые метаданные, захватываемые обычно в резервные копии журналов, могут быть недоступны.When you use back up the tail of the log on a damaged database, some of the metadata ordinarily captured in log backups might be unavailable. Дополнительные сведения см. в подразделе Резервное копирование заключительного фрагмента журнала с неполными метаданными резервной копииэтого раздела.For more information, see Tail-Log Backups That Have Incomplete Backup Metadata, in this topic.

Резервные копии заключительного фрагмента журнала с неполными метаданнымиTail-Log backups that have incomplete backup metadata

Резервное копирование заключительного фрагмента журнала захватывает конец журнала даже в тех случаях, когда база данных работает вне сети, повреждена или в ней не хватает файлов данных.Tail log backups capture the tail of the log even if the database is offline, damaged, or missing data files. В результате этого метаданные команд восстановления данных и базы данных msdbмогут быть неполными.This might cause incomplete metadata from the restore information commands and msdb. Однако несмотря на неполноту метаданных, захваченный журнал будет полным и готовым к использованию.However, only the metadata is incomplete; the captured log is complete and usable.

Если резервная копия заключительного фрагмента журнала содержит неполные метаданные, то параметр has_incomplete_metadata в таблице backupset принимает значение 1.If a tail-log backup has incomplete metadata, in the backupset table, has_incomplete_metadata is set to 1. Кроме того, выходной аргумент HasIncompleteMetadataинструкции RESTORE HEADERONLY принимает значение 1.Also, in the output of RESTORE HEADERONLY, HasIncompleteMetadata is set to 1.

Если метаданные в резервной копии заключительного фрагмента журнала неполные, то в таблице backupfilegroup большая часть сведений о файловых группах того времени в резервной копии заключительного фрагмента журнала будет утеряна.If the metadata in a tail-log backup is incomplete, the backupfilegroup table will be missing most of the information about filegroups at the time of the tail-log backup. Большинство столбцов таблицы backupfilegroup содержит значение NULL, другие значения имеют следующие столбцы:Most of the backupfilegroup table columns are NULL; the only meaningful columns are as follows:

  • backup_set_idbackup_set_id
  • filegroup_idfilegroup_id
  • typetype
  • type_desctype_desc
  • is_readonlyis_readonly

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

Инструкции по созданию резервной копии журнала транзакций см. в разделе Резервное копирование журнала транзакций при повреждении базы данных (SQL Server).To create a tail-log backup, see Back Up the Transaction Log When the Database Is Damaged (SQL Server).

Инструкции по восстановлению резервной копии журнала транзакций см. в разделе Восстановление резервной копии журнала транзакций (SQL Server).To restore a transaction log backup, see Restore a Transaction Log Backup (SQL Server).

См. также:See Also

BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Резервное копирование и восстановление баз данных SQL Server Back Up and Restore of SQL Server Databases
Резервные копии только для копирования (SQL Server) Copy-Only Backups (SQL Server)
Резервные копии журналов транзакций (SQL Server) Transaction Log Backups (SQL Server)
Применение резервных копий журналов транзакций (SQL Server) Apply Transaction Log Backups (SQL Server)
Руководство по архитектуре журнала транзакций SQL Server и управлению имSQL Server Transaction Log Architecture and Management Guide