确定SQL故障转移群集中的活动节点

时间:2009-04-22 17:02:07

标签: sql-server tsql failover

有没有人知道如何以编程方式从T-SQL确定SQL主动 - 被动故障转移群集的主动节点?

@@SERVERNAME仅返回虚拟服务器名称,这两个节点都是相同的。

我不打算根据数据做出任何决定 - 我相信故障转移可以做到这一点 - 但我想将这些信息包含在事件日志中,以便我可以告诉群集中哪个节点处于活动状态事件发生,或帮助确定是否由于故障转移而出现异常。

3 个答案:

答案 0 :(得分:32)

Select ServerProperty('ComputerNamePhysicalNetBIOS')

答案 1 :(得分:2)

答案 2 :(得分:0)

尝试此操作,这将检查服务器是否是可用性组中的主服务器,然后根据此条件执行X:

IF EXISTS (SELECT ars.role FROM sys.dm_hadr_availability_replica_states ars JOIN sys.availability_groups ag ON ars.group_id = ag.group_id WHERE ars.role_desc = 'PRIMARY')
    BEGIN
        SELECT 'PRIMARY' -- DO STUFF IF PRIMARY
    END
ELSE
    BEGIN
        SELECT 'NOT PRIMARY' --- DON'T DO STUFF
    END