Подтвердить что ты не робот

Определить Active Node в отказоустойчивом кластере SQL

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

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

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

4b9b3361

Ответ 1

Select ServerProperty('ComputerNamePhysicalNetBIOS')

Ответ 2

Это работает в более новых версиях:

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