Определить активный узел в отказоустойчивом кластере SQL
-
13-09-2019 - |
Вопрос
Кто-нибудь знает, как программно определить активный узел активно-пассивного отказоустойчивого кластера SQL из T-SQL?
@@SERVERNAME
возвращает только имя виртуального сервера, которое идентично для обоих узлов.
Я не планирую принимать какие-либо решения на основе данных - я доверяю отработке отказа, которая сделает свое дело, - но я хотел бы включить информацию в журнал событий, чтобы я мог определить, какой узел в кластере был активен, когда произошло событие, или помочь определить, возникают ли исключения в результате отработки отказа.
Решение
Select ServerProperty('ComputerNamePhysicalNetBIOS')
Другие советы
Это работает в более новых версиях:
SELECT * FROM fn_virtualservernodes();
полная информация по адресу https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-virtualservernodes-transact-sql?view=sql-server-2017
SELECT * FROM sys.dm_os_cluster_nodes;
полная информация по адресу https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-cluster-nodes-transact-sql?view=sql-server-2017