2008-08-11 3 views
5

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

  • Восстановление с Recovery
  • Восстановление с Нет восстановления
  • Восстановление с Standby

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

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

ответ

7

GateKiller,

В простых условиях (а не копипаст из SQLBOL), так что вы можете понять понятия:

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

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

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

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

1

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

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 не разрешается при необходимости обновления базы данных.

4

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

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

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

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