Есть ли простой способ вызвать автоматическое восстановление после отказа одной зеркальной базы данных?


8

У меня есть 3 зеркальных базы данных на одном экземпляре sqlserver2008-R2 в высокой степени безопасности с автоматической настройкой отработки отказа. Есть ли способ вызвать автоматический переход на другой ресурс только для 1 базы данных?

Я хочу смоделировать, где база данных на самом деле недоступна, а не просто нажать кнопку «Отработка отказа» из SSMS. Я могу остановить конечную точку на первичной, но это сделает все 3 базы данных недоступными, поскольку они используют одну и ту же конечную точку.

Как мне отключить всего 1 дБ?

Ответы:


3

Если ваше зеркалирование настроено правильно для обеспечения высокой безопасности / автоматического перехода на другой ресурс при сбое, я склонен думать, что вы можете просто перевести основную базу данных в автономный режим с помощью этого:

alter database YourDb set offline
with rollback immediate
go

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


1
я надеялся, что это решение сработает, но я получаю сообщение 1468, база данных участвует в зеркалировании, оператор alter не выполнен.
dat_girl

@dat_girl: можете ли вы сначала попытаться настроить его как однопользовательский с немедленным откатом, а затем попробовать приведенное выше утверждение?
Томас Стрингер

Это тоже не сработало @shark, та же ошибка. Я думаю, что я должен был бы прекратить зеркалирование, прежде чем какие-либо «государственные» изменения могут быть внесены в БД.
dat_girl

2

Чтобы зеркалирование имело смысл, вам потребуется как минимум второй экземпляр SQL-Server: один для «основного» и один для «зеркального».

Как установить дополнительный экземпляр, смотрите: Настройка экземпляра .

Для автоматического переключения при сбое вам также понадобится третий экземпляр ( «Свидетель» ), целью которого является мониторинг состояний основного и зеркального (соединения) («... свидетель не обслуживает базу данных. Поддержка автоматического режима»). аварийное переключение является единственной ролью свидетеля ").

Для настройки всего зеркала с переключением при сбое см .: Автоматическое переключение при сбое и Синхронное зеркальное отображение базы данных (режим высокой безопасности) .

После выполнения этих шагов вы можете проверить свою конфигурацию, остановив одну из служб SQL-Server (основной или зеркальный). Зеркальная база данных становится доступной.

Я настоятельно рекомендую не запускать экземпляры на одном и том же реальном сервере, поскольку это не защитит вас от каких-либо аппаратных сбоев!


Спасибо @vorax, но у меня уже есть настройка зеркалирования, и она отлично работает. Я также не хочу останавливать службу, так как это приведет к отключению всех баз данных в экземпляре. Я просто хочу остановиться 1.
dat_girl

0

Хм, это alter database whateverdb set partner failoverдолжно быть сделано, но это может занять весь сервер, у меня нет ни одной руки, с которой я бы мог поэкспериментировать, и документы, к сожалению, используют сервер и базу данных взаимозаменяемо.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.