Вопрос

При восстановлении базы данных SQL Server я замечаю, что есть 3 различных состояния восстановления на выбор:

  • Восстановить с помощью Recovery
  • Восстановление без восстановления
  • Восстановление в режиме ожидания

Я всегда оставлял его со значением по умолчанию, но что все они означают?

(Предпочтительно с точки зрения непрофессионала)

Это было полезно?

Решение

Убийца врат,

Простыми словами (а не копипастой из SQLBOL), чтобы вы могли понять концепции:

ВОССТАНОВЛЕНИЕ С ПОМОЩЬЮ RECOVERY использует файл резервной копии мультимедиа (напр.fulldata.bak), чтобы восстановить базу данных до того момента, когда был создан файл резервной копии.Это здорово, если вы хотите вернуться в прошлое, чтобы восстановить базу данных до более раннего состояния - например, при разработке системы.

Если вы хотите восстановить базу данных ДО САМЫХ ПОСЛЕДНИХ ДАННЫХ, (т.е.например, если вы выполняете аварийное восстановление системы и вы не можете потерять какие-либо данные), то вы хотите восстановить эту резервную копию, а затем все журналы транзакций, созданные с момента этой резервной копии.Это происходит, когда вы используете RESTORE NORECOVERY.Это позволит вам восстановить более поздние журналы транзакций вплоть до момента сбоя (пока они у вас есть).

ВОССТАНОВЛЕНИЕ С ИСПОЛЬЗОВАНИЕМ режима ОЖИДАНИЯ - это возможность восстановить базу данных до определенной даты (например, NORECOVERY выше), но при этом разрешить использовать базу данных ТОЛЬКО ДЛЯ чтения.Новые журналы транзакций по-прежнему могут быть применены к базе данных, чтобы поддерживать ее в актуальном состоянии (резервный сервер).Используйте это, когда восстановление полной базы данных займет слишком много времени, чтобы вернуть систему к нормальной работе.(то есть.если у вас база данных объемом в несколько ТБ, восстановление которой заняло бы 16 часов, но вы могли бы получать обновления журнала транзакций каждые 15 минут).

Это немного похоже на зеркальный сервер, но без отправки "каждой отдельной транзакции" на резервный сервер в режиме реального времени.

Другие советы

Вы можете настроить базу данных Microsoft SQL Server так, чтобы она не находилась в режиме ВОССТАНОВЛЕНИЯ или ОЖИДАНИЯ.

ВОССТАНОВЛЕНИЕ - это нормальное состояние базы данных, при котором пользователи могут подключаться к базе данных и получать к ней доступ (при условии, что у них установлены соответствующие разрешения).

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

Состояние ОЖИДАНИЯ практически совпадает со статусом ВОССТАНОВЛЕНИЯ, однако оно позволяет пользователям подключаться к базе данных или получать доступ к ней в режиме доступа ТОЛЬКО для чтения.Таким образом, пользователи могут запускать только команду SELECT для базы данных.Это довольно часто используется при доставке журналов для целей отчетности.Единственным недостатком является то, что пока в базе данных есть пользователи, выполняющие запросы, SQL Server или администратор базы данных не могут восстановить дополнительные файлы резервных копий.Поэтому, если у вас много пользователей, постоянно обращающихся к базе данных, репликация может отстать.

Из онлайн-книг, я думаю, это довольно ясно после того, как вы их прочитаете

ОТСУТСТВИЕ ВОССТАНОВЛЕНИЯ

Указывает операции восстановления не откатывать никакие незафиксированные транзакции.Если необходимо применить другой журнал транзакций, необходимо указать либо параметр NORECOVERY, либо параметр STANDBY.Если не указаны ни NORECOVERY, ни RECOVERY, ни STANDBY, по умолчанию используется RECOVERY.

SQL Server требует, чтобы параметр WITH NORECOVERY использовался для всех инструкций, кроме инструкции final RESTORE, при восстановлении резервной копии базы данных и нескольких журналов транзакций или когда требуется несколько инструкций RESTORE (например, полная резервная копия базы данных, за которой следует разностная резервная копия базы данных).

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

При использовании с операцией восстановления файла или файловой группы NORECOVERY заставляет базу данных оставаться в состоянии восстановления после операции восстановления.Это полезно в любой из этих ситуаций:

Запускается сценарий восстановления, и журнал всегда применяется.

Используется последовательность восстановления файлов, и база данных не предназначена для использования между двумя операциями восстановления.

ВОССТАНОВЛЕНИЕ

Указывает операции восстановления откатить все незафиксированные транзакции.После процесса восстановления база данных готова к использованию.

Если планируются последующие операции ВОССТАНОВЛЕНИЯ (ВОССТАНОВЛЕНИЕ ЖУРНАЛА или БАЗЫ ДАННЫХ из differential), вместо этого следует указать NORECOVERY или STANDBY.

Если не указаны ни NORECOVERY, ни RECOVERY, ни STANDBY, по умолчанию используется RECOVERY.При восстановлении наборов резервных копий с более ранней версии SQL Server может потребоваться обновление базы данных.Это обновление выполняется автоматически, если указано С ВОССТАНОВЛЕНИЕМ.Дополнительные сведения см. в разделе Резервные копии журналов транзакций .

РЕЖИМ ОЖИДАНИЯ = отмененное имя_файла

Указывает имя файла отмены, чтобы можно было отменить эффекты восстановления.Размер, необходимый для файла отмены, зависит от объема действий по отмене, возникающих в результате незафиксированных транзакций.Если не указаны ни NORECOVERY, ни RECOVERY, ни STANDBY, по умолчанию используется RECOVERY.

РЕЖИМ ОЖИДАНИЯ позволяет открывать базу данных для доступа только для чтения между восстановлениями журнала транзакций и может использоваться как в режиме "горячего ожидания" сервера, так и в особых ситуациях восстановления, в которых полезно проверять базу данных между восстановлениями журнала.

Если указанное имя файла отмены не существует, SQL Server создает его.Если файл действительно существует, SQL Server перезаписывает его.

Один и тот же файл отмены может быть использован для последовательного восстановления одной и той же базы данных.Дополнительные сведения см. в разделе Использование резервных серверов.

Важно: если на диске, содержащем указанное имя файла отмены, заканчивается свободное дисковое пространство, операция восстановления прекращается.

РЕЖИМ ожидания не разрешен, когда необходимо обновление базы данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top