Планирование и выполнение последовательностей восстановления (модель полного восстановления)

Применимо к:SQL Server

В этом разделе объясняется, как спланировать и выполнить последовательность восстановления для баз данных SQL Server, которые обычно используют модель полного восстановления. Последовательность восстановления — это последовательность из одной или нескольких инструкций RESTORE . Как правило, она инициализирует содержимое базы данных, файлы или страницы, производя последовательность восстановления (стадия копирования данных), выполняет накат записанных транзакций (стадия повтора) и откатывает нефиксированные транзакции (стадия отката).

В простых случаях для последовательности восстановления необходима только полная резервная копия базы данных, разностная резервная копия и последующие резервные копии журнала. В таких ситуациях выстроить правильную последовательность восстановления нетрудно. Например, чтобы восстановить всю базу данных до точки сбоя, начинают с резервного копирования журнала действующих транзакций ( заключительного фрагмента журнала ). Затем восстанавливают последнюю полную резервную копию базы данных, последнюю разностную резервную копию базы данных (если она есть), а затем все последующие резервные копии журналов в порядке их выполнения.

В более сложных случаях может оказаться совсем непросто определить правильную последовательность восстановления. Например, для последовательности восстановления может потребоваться несколько резервных копий файла или восстановление данных до определенного момента времени. В самых сложных случаях может потребоваться обход разветвленного пути восстановления, образующего одну или несколько вилок восстановления.

Заметка

Последовательность резервных копий данных и журналов, которая позволяет привести базу данных к состоянию на определенный момент времени, называется путь восстановления . Путь восстановления представляет собой определенный набор преобразований, отражающих развитие базы данных в течение времени и, в то же время, поддерживающих согласованность данных в ней. Путь восстановления описывает диапазон номеров LSN от точки запуска (LSN,GUID) до конечной точки (LSN,GUID). Диапазон номеров LSN в ветви восстановления может проходить по одной или более ветвям от начала до конца.

Планирование последовательности восстановления

Перед запуском последовательности восстановления выполните следующие действия.

  1. По возможности создайте резервную копию заключительного фрагмента журнала базы данных. Дополнительные сведения см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).

  2. Определите целевую точку восстановления.

    Целевая точка восстановления может быть любым моментом времени или меткой в пределах резервной копии журнала транзакций. Дополнительные сведения см. в разделе "Восстановление базы данных SQL Server до точки во времени" (модель полного восстановления) или использование помеченных транзакций для последовательного восстановления связанных баз данных (модель полного восстановления).

  3. Определите тип выполняемого восстановления. Дополнительные сведения см. в статье Обзор процессов восстановления (SQL Server).

  4. Определите, какие резервные копии необходимы, и убедитесь, что доступны необходимые наборы носителей и устройства резервного копирования. Дополнительные сведения см. в статьях "Устройства резервного копирования" (SQL Server) и наборы носителей, семейства носителей и резервные наборы данных (SQL Server).

Выполнение последовательности восстановления

Выполнение последовательности восстановления.

  1. Чтобы начать последовательность, восстановите одну или несколько резервных копий данных, например: резервную копию данных, частичную резервную копию, одну или несколько резервных копий файлов.

  2. При необходимости можно восстановить последние разностные резервные копии, основанные на этих полных резервных копиях.

    Для каждой полной резервной копии, которую планируется восстановить, определите, является ли она основой для каких-либо разностных резервных копий. Если да, то по возможности восстановите самую последнюю разностную копию. Дополнительные сведения см. в разделе Разностные резервные копии (SQL Server).

  3. Произведите накат базы данных, по порядку восстановив резервные копии журналов, заканчивая резервной копией, содержащей точку восстановления. Необходимость в применении всех резервных копий зависит от того, какая из них содержит целевую точку восстановления.

    • Если точка восстановления совпадает с точкой сбоя, необходимо восстановить все резервные копии журнала, созданные с момента восстановления последней резервной копии данных (полной или разностной). Дополнительные сведения см. в разделе Применение резервных копий журналов транзакций (SQL Server).

    • Для восстановления на момент времени самые последние резервные копии журнала могут не потребоваться. Если вы используете SQL Server Management Studio, помощник по восстановлению базы данных гарантирует, что выбраны только резервные копии, необходимые для восстановления до указанной точки во времени. Эти резервные копии составляют рекомендованный план восстановления для данного восстановления на момент времени. Дополнительные сведения см. в разделе Восстановление базы данных SQL Server на определенный момент времени (модель полного восстановления).

Перезапуск последовательности восстановления

Столкнувшись с проблемой в ходе выполнения последовательности восстановления, можно выйти и перезапустить последовательность восстановления заново с самого начала. Например, если случайно было восстановлено слишком много резервных копий журнала и тем самым восстановление перешло запланированную точку восстановления, необходимо перезапустить последовательность восстановления и выполнить ее до резервной копии журнала, содержащей целевую точку восстановления.

См. также

Общие сведения о резервном копировании (SQL Server)
Обзор процессов восстановления (SQL Server)
Полное восстановление базы данных (модель полного восстановления)
Восстановление в сети (SQL Server)
Восстановление файлов (модель полного восстановления)
Восстановление страниц (SQL Server)
Восстановление фрагмента (SQL Server)