Программное определение главного сервера в сценарии аварийного переключения SQL
-
23-08-2019 - |
Вопрос
Часть 1:Как можно запросить базы данных в сценарии аварийного переключения Microsoft SQL Server 2005, чтобы определить, какой сервер является главным, а какой — подчиненным?Я ищу что-то более элегантное, чем попытка выполнить запрос на сервере и посмотреть, какой из них выдает исключение.
Часть 2:Есть ли способ отслеживать и определять, когда главный SQL-сервер переходит на подчиненный?
Конечная цель — создать сценарий или другой метод, который будет отслеживать серверы и отправлять уведомления при возникновении отказа.
Решение
Из SQL 2005 BOL есть эта статья Мониторинг состояния зеркалирования что выглядит полезным.
В противном случае, если вы запросите SELECT @@SERVERNAME из хранимой процедуры в зеркальной базе данных, вы сможете определить, какой SQL-сервер является главным.