Подтвердить что ты не робот

Log-Shipping: Почему вы выбрали режим "Нет восстановления"?

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

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

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

4b9b3361

Ответ 1

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

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

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

Подробнее в этой статье в My World of SQL.