2013-01-21 3 views
13

При настройке LogShipping для SQL Server вы можете выбрать, чтобы вторичная база данных находилась в режиме отсутствия восстановления или в режиме ожидания. Нет восстановления означает, что у вас нет доступа к базе данных, когда идет судоходство. В режиме ожидания предоставляется доступ только для чтения, и если вы выберите вариант отключения пользователей всякий раз, когда произойдет восстановление, похоже, не будет мешать процессу доставки журнала. Это выглядит как дополнительное преимущество режима ожидания, но, насколько я вижу, в документе упоминаются отрицательные последствия.Log-Shipping: Почему вы не выбираете режим восстановления?

Я поэтому задаюсь вопросом, почему кто-то решил использовать режим «Нет восстановления»? Единственные правдоподобные причины, о которых я могу думать, - это режим ожидания, вызвавший значительное ухудшение производительности (но в документах ничего не упоминается), или если есть какое-то требование безопасности, чтобы активно запрещать кому-либо видеть содержимое вторичной базы данных (например, что кажется редким/маловероятным).

Может ли кто-нибудь просветить меня, каково преимущество выбора режима отсутствия восстановления?

+7

Я не понимаю, почему это считается вне темы. Вопросы, связанные с FAQ, включают в себя критерии «программные инструменты, обычно используемые программистами». Log-Shipping является частью SQL Server, который очень определенно используется программистами, и, действительно, поиск StackOverflow показывает, что вопросы о LogShipping задаются и отвечают здесь. – PhantomDrummer

ответ

16

При использовании режима NORECOVERY доступ к целевой базе данных не будет предоставлен, поэтому базе данных не нужно заботиться о незавершенных транзакциях. Журнал можно просто восстановить «как есть» и оставить в этом состоянии.

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

Как видите, STANDBY имеет потенциально большие дополнительные накладные расходы при восстановлении в зависимости от объема транзакции.

Подробнее at this article at My World of SQL.

Смежные вопросы