Состояния восстановления SQL Server - PullRequest
5 голосов
/ 11 августа 2008

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 11 августа 2008

GateKiller,

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

RESTORE WITH RECOVERY использует файл носителя для резервного копирования (например, fulldata.bak), чтобы восстановить базу данных в то время, когда был создан файл резервной копии. Это замечательно, если вы хотите вернуться назад во времени, чтобы восстановить базу данных до более раннего состояния - как при разработке системы.

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

RECOVERY WITH STANDBY - это возможность восстановить базу данных до контрольной даты (как указано выше в NORECOVERY), но разрешить использование базы данных в режиме READONLY. Новые журналы транзакций могут по-прежнему применяться к базе данных, чтобы поддерживать ее актуальность (резервный сервер). Используйте это, когда потребуется слишком много времени для восстановления полной базы данных, чтобы вернуться в систему. (т. е. если у вас есть база данных с несколькими ТБ, для восстановления которой потребуется 16 часов, но вы можете получать обновления журнала транзакций каждые 15 минут).

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

4 голосов
/ 06 апреля 2014

Вы можете установить базу данных Microsoft SQL Server в режимы NORECOVERY, RECOVERY или STANDBY.

RECOVERY - это нормальное и обычное состояние базы данных, где пользователи могут подключаться и получать доступ к базе данных (при условии, что у них установлены надлежащие разрешения).

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

STANDBY в значительной степени совпадает со статусом NORECOVERY, однако позволяет пользователям подключаться к базе данных или получать к ней доступ в режиме READONLY. Таким образом, пользователи могут выполнять только команду SELECT для базы данных. Это часто используется в журнале доставки для отчетности. Единственным недостатком является то, что пока есть пользователи в базе данных, выполняющие запросы, SQL Server или администратор БД не могут восстановить дополнительные файлы резервных копий. Поэтому, если у вас много пользователей, которые постоянно обращаются к базе данных, репликация может отстать.

1 голос
/ 11 августа 2008

Из книг в Интернете, я думаю, что после прочтения вам станет ясно,

NORECOVERY

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

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

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

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

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

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

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

Дает команду операции восстановления для отката любых незавершенных транзакций. После процесса восстановления база данных готова к использованию.

Если запланированы последующие операции RESTORE (RESTORE LOG или RESTORE DATABASE из дифференциала), следует указать NORECOVERY или STANDBY.

Если не указано ни NORECOVERY, RECOVERY, ни STANDBY, по умолчанию используется RECOVERY. При восстановлении наборов резервных копий из более ранней версии SQL Server может потребоваться обновление базы данных. Это обновление выполняется автоматически, если указано WITH RECOVERY. Для получения дополнительной информации см. Резервные копии журнала транзакций.

STANDBY = undo_file_name

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

STANDBY позволяет запускать базу данных для доступа только для чтения между восстановлениями журнала транзакций и может использоваться как в ситуациях с «горячим» резервным сервером, так и в особых ситуациях восстановления, в которых полезно проверять базу данных между восстановлениями журнала.

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

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

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

STANDBY не допускается, когда требуется обновление базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...