какие модели восстановления поддерживает компонент database engine
Модели восстановления (SQL Server)
SQL Server выполняются в контексте модели восстановления базы данных. Модели восстановления предназначены для управления обслуживанием журналов транзакций. Модель восстановления — это свойство базы данных, которое управляет процессом регистрации транзакций, определяет, требуется ли для журнала транзакций резервное копирование, а также определяет, какие типы операций восстановления доступны. Существует три модели восстановления: простая модель восстановления, модель полного восстановления и модель восстановления с неполным протоколированием. Обычно в базе данных используется модель полного восстановления или простая модель восстановления. Базу данных можно в любой момент переключить на использование другой модели восстановления.
В этом разделе.
Общие сведения о модели восстановления
В следующей таблице представлены сведения о трех моделях восстановления.
Модель восстановления | Описание | Риск потери результатов работы | Восстановить до заданного момента времени? | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Простота | Нет резервных копий журналов. Автоматически освобождает место на диске, занятое журналами, устраняя таким образом необходимость в управлении размером журналов транзакций. Дополнительные сведения о резервном копировании базы данных в простой модели восстановления см. в разделе Полные резервные копии базы данных (SQL Server). Операции, требующие резервного копирования журнала транзакций, не поддерживаются в простой модели восстановления. Следующие функции не могут быть использованы в простом режиме восстановления: — Группы AlwaysOn или зеркальное отображение базы данных — Восстановление носителя без потери данных — Восстановление на определенный момент времени | Изменения с момента создания последней резервной копии не защищены. В случае аварийной ситуации эти изменения придется вносить повторно. | Возможно восстановление только до конца резервной копии. Дополнительные сведения см. в разделе Полное восстановление базы данных (простая модель восстановления). Потеря результатов работы из-за повреждения файлов данных исключена. Возможно восстановление до произвольного момента времени (например до ошибки приложения или пользователя). Дополнительные сведения о создании резервных копий базы данных с использованием полной модели восстановления см. в разделах Полные резервные копии базы данных (SQL Server) и Полное восстановление базы данных (модель полного восстановления). | Обычно нет. Если поврежден заключительный фрагмент журнала, то требуется восстановление изменений, произведенных в базе с момента создания последней резервной копии журналов. | Может выполнять восстановление до определенного момента времени при наличии всех необходимых резервных копий до этого момента времени. Дополнительные сведения об использовании резервных копий журналов для восстановления до точки сбоя см. в разделе Восстановление базы данных SQL Server на определенный момент времени (полная модель восстановления). Примечание. Если осуществляется работа с двумя или более базами данных с полным восстановлением, которые должны быть логически согласованными, для гарантии возможности восстановления этих баз данных, возможно, придется реализовать специальные процедуры. Дополнительные сведения см. в разделе Восстановление связанных баз данных, которые содержат помеченную транзакцию. | |||||||||||||||||||||||||||||||||||
С неполным протоколированием | Необходимы резервные копии журналов. Дополнение к полной модели полного восстановления, позволяющее выполнять высокопроизводительные операции массового копирования. Уменьшает место, занимаемое журналами, за счет неполного протоколирования большинства массовых операций. Сведения о том, к каким операциям можно применять минимальное протоколирование, см. в разделе Журнал транзакций (SQL Server). Просмотр или изменение модели восстановления базы данных (SQL Server)В этом разделе описывается просмотр и изменение базы данных с помощью среды SQL Server Management Studio или Transact-SQL. Модель восстановления — это свойство базы данных, которое управляет процессом регистрации транзакций, определяет, требуется ли для журнала транзакций резервное копирование, а также определяет, какие типы операций восстановления доступны. Существует три модели восстановления: простая модель восстановления, модель полного восстановления и модель восстановления с неполным протоколированием. Обычно в базе данных используется модель полного восстановления или простая модель восстановления. Базу данных можно в любой момент переключить на использование другой модели восстановления. База данных model задает модель восстановления по умолчанию для новых баз данных. Более подробное объяснение см. в статье о моделях восстановления. Перед началомВосстановление на момент времени невозможно в модели с неполным протоколированием. Выполнение транзакций в модели восстановления с неполным протоколированием, которая может потребовать восстановления журнала транзакций, может привести к потере данных. Чтобы до максимума повысить восстанавливаемость данных в сценарии аварийного восстановления, следует переключаться в модель восстановления с неполным протоколированием только в следующих случаях. в настоящий момент пользователям запрещен доступ к базе данных; Во время массовой обработки не было изменений, которые невозможно восстановить без применения резервной копии журнала (например, повторным запуском массовой обработки). Если выполняются эти два условия, то при восстановлении журнала транзакций, созданного в модели восстановления с неполным протоколированием, не возникнет угрозы потери данных. Примечание. При переключении на модель полного восстановления в ходе массовой операции режим регистрации массовой операции переключается с минимального протоколирования на полное, и наоборот. Необходимые разрешенияНеобходимо разрешение ALTER на базу данных. Использование среды SQL Server Management StudioПросмотр или изменение модели восстановленияПосле подключения к соответствующему экземпляру компонента Компонент SQL Server Database Engineв обозревателе объектов разверните дерево сервера, щелкнув его имя. Раскройте узел Базы данных и в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных. На панели Выбор страницы щелкните Параметры. Если нужно изменить модель восстановления, выберите в этом списке другую модель. Возможные варианты модели восстановления: Полная, С неполным протоколированием и Простая. Нажмите кнопку ОК. Использование Transact-SQLПросмотр модели восстановленияУстановите соединение с компонентом Компонент Database Engine. На панели «Стандартная» нажмите Создать запрос. Изменение модели восстановленияУстановите соединение с компонентом Компонент Database Engine. На панели «Стандартная» нажмите Создать запрос. Рекомендуемые действия после изменения модели восстановленияПосле переключения с модели полного восстановления на модель восстановления с неполным протоколированием После завершения массовых операций немедленно переключитесь обратно на модель полного восстановления. После переключения с модели восстановления с неполным протоколированием в модель полного восстановления создайте резервную копию журнала.
После переключения с простой модели восстановления Сразу же после переключения на модель полного восстановления или на модель восстановления с неполным протоколированием создайте полную или разностную резервную копию базы данных, чтобы начать цепочку журналов.
Запланируйте обычное резервное копирование журнала и соответствующим образом обновите план восстановления.
После переключения на простую модель восстановления Отмените все запланированные задания резервного копирования журнала транзакций. Убедитесь, что запланировано периодическое резервное копирование базы данных. Резервное копирование базы данных очень важно как для защиты ваших данных, так и для усечения неактивной части журнала транзакций. Обзор процессов восстановления (SQL Server)Чтобы восстановить базу данных SQL Server после сбоя, администратор базы данных должен восстановить набор резервных копий SQL Server в составе логически верной и содержательной последовательности восстановления. SQL Server поддерживает восстановление данных из резервных копий целой базы данных, файла данных или страниц данных следующим образом. База данных ( полное восстановление базы данных) Вся база данных возвращается в прежнее состояние и восстанавливается, при этом база данных находится в режиме вне сети во время операций возврата и восстановления. Файл данных ( восстановление файла) Файл данных или набор файлов данных возвращается в исходное состояние и восстанавливается. Во время восстановления файлов файловые группы, содержащие обрабатываемые файлы, автоматически переводятся в режим вне сети на время восстановления. Любые попытки подключения и работы с файловой группой вне сети приведут к ошибке. Страница данных ( восстановление страницы) При использовании модели полного восстановления или модели восстановления с неполным протоколированием можно восстановить отдельные станицы. Восстановление страниц может применяться для любой базы данных вне зависимости от числа файловых групп. SQL Server работает во всех поддерживаемых операционных системах. Дополнительные сведения о поддерживаемых операционных системах см. в разделе Требования к оборудованию и программному обеспечению для установки SQL Server 2016. Сведения о поддержке резервных копий более ранних версий SQL Serverсм. в подразделе «Поддержка совместимости» раздела RESTORE (Transact-SQL). Общие сведения о сценариях восстановленияСценарий восстановления в SQL Server — процесс восстановления данных из одной или более резервных копий и возврат в исходное состояние базы данных. Поддерживаемые сценарии восстановления зависят от модели восстановления базы данных и выпуска SQL Server. Следующая таблица предоставляет возможные сценарии восстановления, которые поддерживаются различными моделями восстановления.
* Восстановление в сети поддерживается только в выпуске Enterprise Edition. Шаги по восстановлению базы данныхДля восстановления файла Компонент Database Engine выполняет два шага: создает любой недостающий файл базы данных; копирует данные с устройств резервного копирования в файл(ы) базы данных. Для восстановления базы данных Компонент Database Engine выполняет три шага: создает базы данных и файлы журнала транзакций, если они еще не созданы; копирует все данные, журналы и страницы индексов с резервной копии базы данных в файлы базы данных; применяет журнал транзакций в так называемом процессе восстановления. Независимо от способа восстановления данных, перед восстановлением базы данных Компонент SQL Server Database Engine обеспечивает логическую согласованность всей базы данных. Например, если файл был возвращен в исходное состояние, то нельзя восстановить его и вернуть в режим в сети, пока в нем не будет выполнено достаточное количество транзакций, чтобы он согласовывался с базой данных. Преимущества восстановления файлов или страницВосстановление файлов и страниц вместо восстановления всей базы данных целиком дает следующие преимущества. Восстановление данных меньшего объема данных уменьшает время, затрачиваемое на копирование и восстановление. В среде SQL Server восстановление файлов или страниц позволяет другим данным в базе данных оставаться в режиме «в сети» во время операции восстановления. Восстановление и журнал транзакцийДля большинства сценариев восстановления необходимо применить резервную копию журналов транзакций и позволить Компонент SQL Server Database Engine запустить процесс восстановления для подключения базы данных к сети. Восстановление — это процесс, используемый SQL Server для запуска каждой базы данных в транзакционно-согласованном (чистом) состоянии. В случае отработки отказа или другого неясного завершения работы, базы данных могут оставаться в состоянии, в котором часть изменений не была записана из буферного кэша в файлы данных, и могут существовать некоторые изменения в файлах данных, вызванные незавершенными транзакциями. При запуске экземпляра SQL Server выполняется восстановление каждой базы данных, состоящее из трех этапов, на основе последней контрольной точки базы данных: На этапе анализа выполняется анализ журнала транзакций для определения последней контрольной точки и создается таблица «грязных» страниц (ТГС) и таблица активных транзакций (ТАТ). ТГС содержит записи о страницах, которые были «грязными» на момент завершения работы базы данных. TАT содержит записи транзакций, которые оставались активными на момент некорректного завершения работы базы данных. На стадии повтора выполняется накат всех изменений, записанных в журнале, которые, возможно, не были записаны в файлы данных на момент завершения работы базы данных. Минимальный регистрационный номер транзакции в журнале (minLSN), необходимый для успешного восстановления всей базы данных, находится в ТГС и отмечает начало операций восстановления, необходимых для всех «грязных» страниц. На этом этапе Компонент SQL Server Database Engine записывает на диск все «грязные» страницы, принадлежащие подтвержденным транзакциям. На стадии отката выполняется откат незавершенных транзакций, обнаруженных в TАT, чтобы убедиться в сохранении целостности базы данных. После отката база данных включается в режим «в сети», и больше никакие резервные копии журнала транзакций не могут быть применены. Сведения о ходе каждой стадии восстановления базы данных заносятся в журнал ошибок SQL Server. Ход восстановления базы данных также можно отслеживать с помощью расширенных событий. Дополнительные сведения см. в записи блога New extended events for database recovery progress (Новые расширенные события для процесса восстановления базы данных). Для сценария поэтапного восстановления, если файловая группа доступна только для чтения с момента, предшествующего созданию резервной копии файловых групп, использование резервных копий журналов не требуется и эта группа пропускается при восстановлении файлов. Чтобы максимально увеличить доступность баз данных в корпоративной среде, SQL Server выпуск Enterprise может перевести базу данных в действие после стадии повтора, в то время как стадия отката все еще будет выполняться. Это также называется быстрым восстановлением. Модели восстановления и поддерживаемые операции восстановленияМодель восстановления определяет перечень операций, доступных при восстановлении базы данных. В следующей таблице указано, какие сценарии восстановления и в какой степени поддерживаются в каждой из моделей восстановления.
* Доступно только в выпуске Enterprise SQL Server ** Сведения о необходимых условиях см. в подразделе Ограничения для восстановления по простой модели восстановлениядалее в этом разделе. Независимо от модели восстановления базы данных, резервную копию SQL Server нельзя восстановить до версии Компонент SQL Server Database Engine, более старой, чем версия, создавшая резервную копию. Сценарии восстановления по простой модели восстановленияВ простой модели восстановления предусмотрены следующие ограничения для операции восстановления. Восстановление файлов и поэтапное восстановление доступны только для вторичных файловых групп, предназначенных только для чтения. Дополнительные сведения об этих сценариях восстановления см. в статьях Восстановление файлов (простая модель восстановления) и Поэтапное восстановление (SQL Server). Запрещено восстановление страниц. Запрещено восстановление до заданной точки. Если приведенные выше ограничения противоречат задачам восстановления, рекомендуется использовать модель полного восстановления. Дополнительные сведения см. в разделе Общие сведения о резервном копировании (SQL Server). Восстановление в модели восстановления с неполным протоколированиемВ этом разделе рассматриваются вопросы, относящиеся исключительно к модели восстановления с неполным протоколированием, которая разработана исключительно в дополнение к модели полного восстановления. Основные сведения о модели восстановления с неполным протоколированием см. в разделе Журнал транзакций (SQL Server). В целом модель восстановления с неполным протоколированием схожа с моделью полного восстановления, поэтому все, что касается одной модели, также можно применить к другой. Однако модель восстановления с неполным протоколированием влияет на восстановление к моменту времени и на оперативное восстановление. Ограничения для восстановления на момент времениЕсли в модели восстановления с неполным протоколированием в резервной копии журналов содержатся изменения с неполным протоколированием, восстановление до момента времени невозможно. Попытка восстановления до момента времени из резервной копии журнала, содержащей массовые изменения, приводит к сбою операции восстановления. Ограничения восстановления в сетиПоследовательность восстановления в сети работает только при выполнении следующих условий: все необходимые резервные копии журналов должны быть сделаны до начала последовательности восстановления; резервные копии массовых изменений были созданы до начала последовательности восстановления в сети; Если в базе данных существуют массовые изменения, все файлы должны быть либо подключены к сети, либо уничтожены. (Это означает, что они больше не являются частью базы данных.) Если эти условия не выполняются, последовательность восстановления в сети завершается сбоем. Перед тем, как начать восстановление в сети, рекомендуется переключиться к модели полного восстановления. Дополнительные сведения см. в разделе Модели восстановления (SQL Server). Дополнительные сведения о выполнении восстановления в сети см. в разделе Восстановление в сети (SQL Server). Помощник по восстановлению базы данных (среда SQL Server Management Studio)Помощник по восстановлению базы данных облегчает создание планов восстановления, реализующих оптимально правильные последовательности восстановления. Решено большинство известных проблем восстановления баз данных, и внедрены предложенные клиентами усовершенствования. Основные усовершенствования, появившиеся в помощнике по восстановлению баз данных: Алгоритм плана восстановления: значительно улучшен алгоритм, используемый при создании планов восстановления, особенно для сложных сценариев восстановления. Многие крайние случаи, включая разветвляющиеся сценарии восстановления на момент времени, обрабатываются более эффективно, чем в предыдущих версиях SQL Server. Восстановление на определенный момент времени: помощник по восстановлению баз данных значительно упрощает восстановление базы данных до определенного момента времени. Визуальная временная шкала резервного копирования значительно улучшает поддержку для выполнения восстановления на момент времени. Эта визуальная временная шкала позволяет определять подходящий момент времени в качестве целевой точки восстановления для базы данных. Временная шкала облегчает обзор разветвленного пути восстановления (пути, который покрывает вилки восстановления). Заданный план восстановления на момент времени автоматически включает резервные копии, относящиеся к восстановлению на целевой момент времени (дата и время). Дополнительные сведения см. в статье Восстановление базы данных SQL Server до определенного момента времени (модель полного восстановления). Дополнительные сведения о помощнике по восстановлению баз данных см. в блогах по управлению SQL Server : Ускоренное восстановление баз данных.Ускоренное восстановление базы данных доступно в SQL Server 2019 (15.x) и База данных SQL Azure. Ускоренное восстановление базы данных значительно улучшает доступность базы данных, особенно при наличии продолжительных транзакций, за счет перепроектирования процесса восстановления Компонент SQL Server Database Engine. База данных, для которой было включено ускоренное восстановление, значительно быстрее восстанавливается после отработки отказа или другого неясного завершения работы. Если включено, ускоренное восстановление базы данных также значительно быстрее завершает откат отмененных продолжительных транзакций. Ускоренное восстановление можно включить для каждой базы данных в SQL Server 2019 (15.x), используя следующий синтаксис: Ускоренное восстановление базы данных включено по умолчанию на База данных SQL Azure.
|