Резервные копии заключительного фрагмента журнала
Этот раздел относится только к тем базам данных, которые используют модель полного восстановления или модель восстановления с неполным протоколированием.
В большинстве случаев при использовании модели восстановления с неполным протоколированием или полной модели в SQL Server 2005 и более поздних версиях необходимо создать резервную копию заключительного фрагмента журнала, чтобы получить записи журнала, резервной копии которых еще отсутствуют. Резервная копия заключительного фрагмента журнала, сделанная непосредственно перед операцией восстановления, называется резервной копией заключительного фрагмента журнала.
Обычно в SQL Server 2005 и более поздних версиях перед восстановлением резервной копии базы данных необходимо создавать резервную копию заключительного фрагмента журнала. Резервная копия заключительного фрагмента журнала предотвращает потерю работы и поддерживает неповрежденную цепочку журналов. При восстановлении базы данных на момент сбоя резервная копия заключительного фрагмента журнала является наименее важной в плане восстановления. Если невозможно создать резервную копию заключительного фрагмента журнала, можно восстановить базу данных только до конца последней резервной копии, созданной перед сбоем.
Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала. Резервная копия заключительного фрагмента журнала не нужна, если точка восстановления содержится в более ранней резервной копии журнала или если выполняется перемещение или замещение (перезапись) базы данных, когда не нужно восстанавливать ее на определенный момент времени после последней резервной копии. Кроме того, если файлы журналов повреждены и невозможно создать резервную копию заключительного фрагмента журнала, то восстанавливать базу данных следует без использования резервной копии заключительного фрагмента журнала. Будут потеряны любые транзакции, зафиксированные после создания последней резервной копии журнала. Дополнительные сведения см. в подразделе «Восстановление без использования резервной копии заключительного фрагмента журнала» этого раздела.
Резервное копирование заключительного фрагмента журнала
Как любое резервное копирование, резервное копирование заключительного фрагмента журнала выполняется с помощью инструкции BACKUP LOG. Рекомендуется снимать резервную копию заключительного фрагмента журнала в следующих ситуациях.
Если база данных находится в режиме «в сети» и следующим действием над базой данных будет операция восстановления, то перед ее началом создайте резервную копию заключительного фрагмента журнала с параметром WITH NORECOVERY.
BACKUP LOG имя_базы_данных TO <устройство_резервного_копирования> WITH NORECOVERY
Примечание Чтобы избежать ошибки, обязательно используйте параметр NORECOVERY.
База данных находится в автономном режиме и не запускается.
Попробуйте снять резервную копию заключительного фрагмента журнала. Так как в это время никакие транзакции не выполняются, не обязательно использовать параметр WITH NORECOVERY. Если база данных повреждена, то укажите параметр WITH CONTINUE_AFTER_ERROR следующим образом:
BACKUP LOG имя_базы_данных TO <устройство_резервного_копирования>WITH 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
Восстановление без использования резервной копии заключительного фрагмента журнала
Для следующих сценариев восстановления резервная копия заключительного фрагмента журнала не обязательна.
Восстановление базы данных на момент времени, который содержится в предыдущей резервной копии журнала.
Резервная копия заключительного фрагмента журнала не требуется, если база данных восстанавливается с параметром STOPAT, STOPATMARK или STOPBEFOREMARK, используемым в каждой инструкции последовательности восстановления.
Восстановление базы данных на более ранний момент времени
Сведения о том, как использовать Transact-SQL для восстановления базы данных на момент времени, см. в разделах Как выполнить восстановление на момент времени (Transact-SQL), Восстановление до помеченной транзакции или Восстановление до номера LSN.
Сведения об использовании среды SQL Server Management Studio см. в разделе Как выполнить восстановление на определенный момент времени (среда SQL Server Management Studio) или Как восстановить базу данных до помеченной транзакции (среда SQL Server Management Studio).
Восстановление копии базы данных в другое расположение.
При восстановлении базы данных можно использовать такое же имя базы данных только в том случае, если база данных восстанавливается на другой экземпляр сервера, например при создании зеркальной базы данных для зеркального отображения базы данных или базы данных-получателя для доставки журналов. При перемещении базы данных на тот же самый экземпляр сервера необходимо указать новое имя базы данных.
Восстановление базы данных в новое место
С помощью языка Transact-SQL укажите параметр MOVE в каждой инструкции RESTORE. Дополнительные сведения см. в разделе Как восстановить базу данных в новое место с новым именем (Transact-SQL) или Как восстановить файлы в новое место (Transact-SQL).
В среде SQL Server Management Studio укажите новое расположение каждого файла в поле Восстановить как на странице Восстановление базы данных (Страница Параметры). Дополнительные сведения см. в разделе Как восстановить резервную копию базы данных (среда SQL Server Management Studio).
Полное замещение (перезапись) базы данных.
Внимание! При восстановлении не следует слишком часто прибегать к параметру REPLACE. Им могут пользоваться только опытные администраторы базы данных. Дополнительные сведения см. в разделе Использование параметра REPLACE.
Замещение базы данных
На языке Transact-SQL укажите параметр REPLACE в инструкциях RESTORE.
В среде SQL Server Management Studio укажите новое расположение каждого файла в поле Восстановить как на странице Восстановление базы данных (страница Параметры). Дополнительные сведения см. в разделе Как восстановить резервную копию базы данных (среда SQL Server Management Studio).
См. также
Справочник
Основные понятия
Журнал изменений
Обновления |
---|
Обновлен раздел «Резервное копирование заключительного фрагмента журнала» — исправлена информация о резервном копировании заключительного фрагмента журнала, когда база данных вне сети и не запускается. |