首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >确定SQL故障转移群集中的活动节点

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

Stack Overflow用户
提问于 2009-04-22 17:02:07
回答 3查看 43.9K关注 0票数 23

有人知道如何通过T-SQL以编程方式确定SQL主动-被动故障切换群集的主动节点吗?

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

我不打算根据数据做出任何决策-我相信故障转移可以完成它的任务-但我希望将这些信息包括在事件日志中,这样我就可以知道事件发生时群集中的哪个节点处于活动状态,或者帮助确定故障转移是否会导致出现异常。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-22 17:14:55

代码语言:javascript
复制
Select ServerProperty('ComputerNamePhysicalNetBIOS')
票数 37
EN

Stack Overflow用户

发布于 2019-09-04 22:22:42

这在较新的版本中有效:

代码语言:javascript
复制
SELECT * FROM fn_virtualservernodes();

有关详情,请访问https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-virtualservernodes-transact-sql?view=sql-server-2017

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2020-09-20 01:56:40

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/778245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档