2009-04-22 2 views
16

Кто-нибудь знает, как программно определить активный узел SQL-активного пассивного отказоустойчивого кластера из T-SQL?Определение активного узла в отказоустойчивом кластере SQL

@@SERVERNAME возвращает только имя виртуального сервера, идентичное с обоих узлов.

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

ответ

30
Select ServerProperty('ComputerNamePhysicalNetBIOS') 
+1

Perfect - спасибо! –

+0

Если ваш драйвер не может обработать его напрямую, преобразуйте его в varchar: 'SELECT convert (varchar (100), ServerProperty ('ComputerNamePhysicalNetBIOS'))' – bradvido

+0

Обратите внимание, что согласно [docs] (http: // msdn. microsoft.com/en-us/library/ms174396.aspx), вы должны использовать 'MachineName', а не' ComputerNamePhysicalNetBIOS' для сбоя кластеров. Протестированные оба значения в группе HA и автономный экземпляр в каждом случае работали, как ожидалось, но я предполагаю, что есть причина, по которой они рекомендуют друг другу. –

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