Как я знаю, какой узел в кластере отвечает?

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

Как я могу знать, какой сервер в кластере отвечает? (Я не возражаю, использует ли это команду, сценарий, C#, или что бы то ни было. Я еще не решил, что использовать: Я просто хочу то, что является самым легким.)

Я использую SQL Server 2008 R2.

Во-вторых (и менее значительно): с этой целью существует ли хороший контрольный инструмент? Я изучал Spiceworks, Zabbix или Nagios.

0
задан 28 July 2014 в 23:54
1 ответ

Не зная, как вы "вызываете кластер", мы не можем ответить на этот вопрос.

Если вы используете что-то, что может дать вам локальную оболочку, вы можете запросить системную переменную COMPUTERNAME. И тогда, как бы Вы ни делали это, Вы можете настроить Ваше решение для мониторинга таким же образом, чтобы оно подключалось и выдавало один и тот же запрос.

Есть протоколы, которые возвращают имя (часто настраиваемое, часто имя хоста по умолчанию), когда они подключены, например, SMTP. Так что, если это пользовательское соединение, которое Вы создали, возможно, Вы можете поместить некоторые диагностики в сам протокол.

Моя точка зрения остается неизменной - если Вы используете NLB для кластеризации SQL, Вы делаете это неправильным способом. Если вы использовали действительные кластерные службы Windows, вы можете убедиться, что определенные службы всегда запущены на активном узле, а не на пассивном, поэтому знать, какой хост не должен быть вопросом, который должны задать ваши клиенты

.
1
ответ дан 4 December 2019 в 17:21

Теги

Похожие вопросы