Состояния восстановления SQL Server

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

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

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

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

11.08.2008 16:59:35
3 ОТВЕТА
РЕШЕНИЕ

GateKiller,

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

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

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

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

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

8
15.11.2018 12:09:19

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

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 = имя_файла_файла

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

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

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

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

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

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

1
11.08.2008 17:03:21

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

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

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

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

4
6.04.2014 02:58:33