Поэтапное восстановление (SQL Server)
Этот раздел относится только к базам данных в выпуске Enterprise SQL Server, которые содержат несколько файлов или файловых групп, а в простой модели — только для файловых групп, доступных только для чтения.
Дополнительные сведения о поэтапном восстановлении и оптимизированных для памяти таблицах см. в разделе Поэтапное восстановление баз данных с таблицами, оптимизированными для памяти.
Поэтапное восстановление позволяет восстанавливать поэтапно базы данных, содержащие несколько файловых групп. Поэтапное восстановление включает в себя ряд последовательностей восстановления, начиная с первичной файловой группы и, в некоторых случаях, с одной или несколькими вторичными файловыми группами. Поэтапное восстановление поддерживает проверки, обеспечивающие согласованность базы данных. По завершении последовательности восстановления восстановленные файлы (если они правильны и согласуются с текущим состоянием базы данных) могут быть сразу использованы в режиме «в сети».
Поэтапное восстановление может использоваться со всеми моделями восстановления, но более эффективно — в сочетании с моделью восстановления с неполным протоколированием или моделью полного восстановления, чем с простой моделью.
Каждое поэтапное восстановление начинается с начальной последовательности восстановления, называемой последовательностью частичного восстановления. Последовательность частичного восстановления восстанавливает по меньшей мере первичную файловую группу и — в простой модели восстановления — файловые группы с режимом доступа «чтение и запись». Во время последовательности частичного восстановления вся база данных переводится в режим «вне сети». После этого этапа база данных переводится в режим «в сети», а все восстановленные файловые группы становятся доступны. Однако невосстановленные файловые группы будут оставаться вне сети и будут недоступны. Файловые группы можно восстановить и перевести в состояние вне сети позднее, с помощью восстановления файлов.
Вне зависимости от модели восстановления базы данных, последовательность частичного восстановления начинается с инструкции RESTORE DATABASE с параметром PARTIAL, которая восстанавливает полную резервную копию. Параметр PARTIAL запускает новое поэтапное восстановление, поэтому необходимо указать параметр PARTIAL только один раз в начальной инструкции последовательности частичного восстановления. В конце последовательности частичного восстановления, когда база данных переводится в режим «в сети», оставшиеся файлы переводятся в состояние «ожидание восстановления», потому что их восстановление было отложено.
Впоследствии поэтапное восстановление обычно состоит из одной или нескольких последовательностей восстановления, которые называются последовательностями восстановления файловых групп. Можно отложить выполнение последовательности восстановления файловых групп на любой период. Каждая последовательность восстановления файловых групп восстанавливает одну или более файловых групп к точке, согласованной с базой данных. Число и время следующих друг за другом последовательностей восстановления групп файлов зависит от цели восстановления, количества восстанавливаемых групп файлов в режиме «вне сети» и того, сколько групп файлов восстанавливается в одной последовательности восстановления.
Точные требования к выполнению поэтапного восстановления зависят от модели восстановления базы данных. Дополнительные сведения см. в разделе «Восстановление по простой модели восстановления» и «Поэтапное восстановление по модели полного восстановления» ниже.
Сценарии поэтапного восстановления
Все выпуски SQL Server поддерживают поэтапное восстановление вне сети. В выпуске Enterprise Edition поэтапное восстановление можно выполнять по сети или автономно. Следствия поэтапных восстановлений как в сети, так и вне сети, описаны ниже.
Сценарий поэтапного восстановления в режиме «вне сети».
В последовательности поэтапного восстановления вне сети база данных находится в режиме «в сети» после завершения последовательности частичного восстановления. Еще не восстановленные файловые группы остаются в режиме «вне сети», но по необходимости они могут быть восстановлены после перевода базы данных в этот режим.
Сценарий поэтапного восстановления в режиме «в сети».
Во время поэтапного восстановления в сети после завершения последовательности частичного восстановления база данных переводится в режим «в сети», и первичная файловая группа и все восстановленные вторичные группы становятся доступны. Еще не восстановленные файловые группы остаются в режиме «вне сети», но по необходимости они могут быть восстановлены, при этом база данных останется в режиме «в сети».
Поэтапное восстановление в сети может включать в себя отложенные транзакции. Если в сценарии поэтапного восстановления происходит восстановление только подмножества файловых групп, то транзакции в базе данных, которые зависят от групп файлов в режиме «в сети», откладываются. Это нормально, так как база данных должна быть полностью согласованной. Дополнительные сведения см. в разделе Отложенные транзакции (SQL Server).
SQL Server In-Memory OLTP сценарий поэтапного восстановления
Сведения о поэтапном восстановлении баз данных выполняющейся в памяти OLTP см. в разделе Поэтапное резервное копирование и восстановление баз данных с таблицами, оптимизированными для памяти.
Ограничения
Если последовательность частичного восстановления исключает любые файловые группы FILESTREAM , восстановление на момент времени не поддерживается. Можно принудительно продолжить последовательность восстановления. Тем не менее файловые группы FILESTREAM, не вошедшие в инструкцию RESTORE, больше невозможно восстановить. Для принудительного продолжения восстановления на момент времени укажите параметр CONTINUE_AFTER_ERROR вместе с параметром STOPAT, STOPATMARK или STOPBEFOREMARK, который также необходимо указать в своих последующих инструкциях RESTORE LOG. Если указать параметр CONTINUE_AFTER_ERROR, выполняется последовательность частичного восстановления, а файловая группа FILESTREAM становится невосстановимой.
Поэтапное восстановление по простой модели восстановления
В простой модели восстановления последовательность поэтапного восстановления должна начинаться с полного или частичного резервного копирования базы данных. Потом, если восстанавливаемая резервная копия является базовой копией для разностного копирования, восстановите последнюю разностную резервную копию.
Если во время выполнения первой последовательности частичного восстановления восстанавливается только подмножество файловых групп с разрешениями на чтение и запись, все невосстановленные файловые группы пропадают при восстановлении частично восстановленной базы данных. Устранение из частичного восстановления файловых групп, доступных для чтения и записи, применимо только в следующих случаях.
Планируется, что невосстановленные файловые группы должны стать нефункционирующими.
В точке восстановления, которую достигнет последовательность восстановления, все невосстановленные файловые группы стали доступны только для чтения, удалены или оказались нефункционирующими (во время предыдущего восстановления в последовательности частичного восстановления).
Полная резервная копия была создана, когда база данных использовала простую модель восстановления, но в точке восстановления база данных использовала модель полного восстановления. Дополнительные сведения см. в разделе «Выполнение поэтапного восстановления базы данных, модель восстановления которой была переключена с простой на полную» ниже.
Требования к поэтапному восстановлению по простой модели восстановления
В простой модели восстановления начальный этап восстанавливает по меньшей мере первичную файловую группу и все вторичные файловые группы с режимом доступа «чтение и запись». По завершении начального этапа восстановленные файлы (если они правильны и согласуются с текущим состоянием базы данных) могут быть сразу использованы в режиме «в сети».
После этого файловые группы, доступные только для чтения, могут восстанавливаться за один или несколько дополнительных этапов.
Поэтапное восстановление может осуществляться для вторичной файловой группы, доступной только для чтения, если по отношению к ней выполняются следующие условия.
Во время резервного копирования файловая группа была доступна только для чтения.
Файловая группа осталась доступной только для чтения (логически согласована с первичной файловой группой).
Чтобы выполнить поэтапное восстановление, необходимо выполнить следующие рекомендации.
Полный набор резервных копий для поэтапного восстановления базы данных с простой моделью восстановления должен содержать следующее.
Частичную или полную резервную копию базы данных, в которой содержатся первичная файловая группа и все файловые группы, доступные для чтения и записи во время резервного копирования.
Резервную копию каждого файла, доступного только для чтения.
Чтобы резервная копия файла, доступного только для чтения, была согласована с первичной файловой группой, вторичная файловая группа должна была быть доступной только для чтения с момента резервного копирования до завершения процедуры резервного копирования, содержащей первичную файловую группу. Можно применять разностные резервные копии файлов, если они были получены после того, как файловая группа стала доступной только для чтения.
Этапы поэтапного восстановления (простая модель восстановления)
Сценарий поэтапного восстановления состоит из двух этапов.
Начальный этап (восстановление первичной файловой группы и всех файловых групп, доступных для чтения и записи).
На начальном этапе выполняется частичное восстановление. Последовательность частичного восстановления восстанавливает первичную файловую группу, все вторичные файловые группы, доступные для чтения и записи, и (дополнительно) некоторые файловые группы, доступные только для чтения. Во время начального этапа вся база данных переводится в режим «вне сети». После завершения начального этапа база данных переводится в режим «в сети» и восстановленные файловые группы доступны. Однако все невосстановленные файловые группы, доступные только для чтения, остаются в режиме «вне сети».
Первая инструкция RESTORE начального этапа должна делать следующее.
Использовать частичную или полную резервную копию, в которой содержатся первичная файловая группа и все файловые группы, доступные для чтения и записи во время резервного копирования. Часто последовательность частичного восстановления начинают с восстановления из частичной резервной копии.
Задавать параметр PARTIAL, который указывает на начало поэтапного восстановления.
Примечание
Параметр PARTIAL выполняет проверку безопасности на предмет возможности использования восстановленной базы данных в качестве рабочей.
- Указывать параметр READ_WRITE_FILEGROUPS, если резервная копия является полной.
Пока база данных находится в режиме «в сети», можно применить одно или несколько восстановлений файлов, чтобы восстановить файлы вне сети, доступные только для чтения, которые были доступны только для чтения во время резервного копирования. Выбор времени восстановлений файлов в сети зависит от того, когда данные необходимо перевести в режим «в сети».
Нужно ли восстанавливать данные в файл? Это зависит от следующих соображений:
Правильные файлы, доступные только для чтения, согласованные с базой данных, могут быть использованы в режиме «в сети» сразу после восстановления файлов без восстановления каких-либо данных с резервных копий.
Поврежденные и несогласованные с базой данных файлы восстанавливаются с резервной копии перед восстановлением данных по журналу транзакций.
Примеры
Пример поэтапного восстановления базы данных (простая модель восстановления)
Пример поэтапного восстановления некоторых файловых групп (простая модель восстановления)
Поэтапное восстановление по модели полного восстановления
В модели полного восстановления или восстановления с неполным протоколированием поэтапное восстановление доступно для всех баз данных, содержащих по несколько файловых групп, и базу данных можно восстановить до любого момента времени. Последовательности восстановления поэтапного восстановления ведут себя следующим образом.
последовательностью частичного восстановления
Последовательность частичного восстановления восстанавливает первичную файловую группу и, возможно, некоторые из вторичных групп.
Первая инструкция RESTORE RESTORE DATABASE начального этапа должна делать следующее.
Задавать параметр PARTIAL. Он указывает на начало поэтапного восстановления.
Использовать любую полную резервную копию, содержащую первичную файловую группу. Часто последовательность частичного восстановления начинают с восстановления из частичной резервной копии.
Чтобы выполнить восстановление на момент времени, необходимо задать время в последовательности частичного восстановления. Каждый последующий этап последовательности восстановления должен задавать тот же самый момент времени.
Последовательности восстановления групп файлов переводят дополнительные группы файлов в режиме «в сети» до достижения согласованности с базой данных.
В выпуске Enterprise Edition любая автономная вторичная файловая группа может быть восстановлена, пока база данных остается в сети. Если данный доступный только для чтения файл не поврежден и согласуется с текущим состоянием базы данных, его восстанавливать не нужно. Дополнительные сведения см. в разделе Восстановление базы данных без восстановления данных (Transact-SQL).
Применение резервных копий журнала
Если файловая группа доступна только для чтения с момента, предшествующего созданию резервной копии файловых групп, использование резервных копий журналов не нужно, и эта группа пропускается при восстановлении файлов. Если файловая группа доступна для чтения и для записи, то с целью перевода файловой группы в состояние, соответствующее текущему файлу журнала, необходимо применить непрерывную последовательность резервных копий журнала к последнему экземпляру, полученному в результате полного или разностного восстановления.
Примеры
Пример поэтапного восстановления базы данных (модель полного восстановления)
Пример поэтапного восстановления некоторых файловых групп (модель полного восстановления)
Выполнение поэтапного восстановления базы данных, модель восстановления которой была переключена с простой на полную
Можно выполнить поэтапное восстановление базы данных, модель восстановления которой была переключена с простой на полную с момента полного частичного резервного копирования или резервного копирования базы данных. Например, рассмотрим базу данных, для которой можно выполнить следующее:
создать частичную резервную копию (backup_1);
через некоторый период времени изменить модель восстановления на полную;
создать разностную резервную копию;
начать создание резервных копий журналов.
Следовательно, верна следующая последовательность:
частичное восстановление, в котором пропущены некоторые вторичные файловые группы;
разностное восстановление, за которым следуют другие необходимые восстановления;
последующее восстановление файлов из доступных для чтения и записи вторичных файловых групп из частичной резервной копии backup_1 с параметром WITH NORECOVERY;
разностные резервные копии, следующие за любыми другими резервными копиями, восстановленными в исходной последовательности поэтапного восстановления, чтобы восстановить данные до первоначальной точки восстановления.
См. также:
Применение резервных копий журналов транзакций (SQL Server)
RESTORE (Transact-SQL)
Восстановление базы данных SQL Server до определенного момента времени (модель полного восстановления)
Обзор процессов восстановления (SQL Server)
Планирование и выполнение последовательностей восстановления (модель полного восстановления)