4

有没有办法以以编程方式确定SQL Server故障转移群集中的哪个节点是活动节点?或者至少确定当前机器是否是主动节点?SQL Server故障转移群集 - 确定活动节点

我有一个在故障转移群集中的两个物理节点上运行的Windows程序,但是它应该以不同的方式运行,具体取决于它是否在主动节点上运行。 部分原因是,该程序不应该同时在非活动节点上运行。

(我读过一些关于使程序集群感知,但似乎这个简单的场景严重矫枉过正。)

+0

如果您开始关心集群问题,我认为您会投入更多的精力去做正确的事情 - 如果在您的支票与您计划执行的任何事情之间发生手动故障转移那?当事情不再成立时,你会认为自己处于主动节点上。 – 2010-12-20 18:14:32

+1

@Damien在这种情况下,你会如何“做对”? – bzlm 2010-12-20 20:51:30

回答

8

从SQL Server:

Select ServerProperty('ComputerNamePhysicalNetBIOS') 

您也可以通过访问Microsoft.SqlServer.Management.Smo命名空间,如here所示。

+0

你能解释一下'Select ServerProperty('ComputerNamePhysicalNetBIOS')'如何告诉你你是否在主动节点上? – 2013-10-13 16:14:34

+0

@Neilw:从[documentation](http://technet.microsoft.com/en-us/library/ms174396.aspx):“SQL Server实例当前运行的本地计算机的NetBIOS名称。” 对于故障转移群集上SQL Server的群集实例,此值会随着SQL Server实例故障转移到故障转移群集中的其他节点而发生更改。 在SQL Server的独立实例上,此值保持不变并返回相同值作为MachineName属性。“ – 2013-10-15 13:38:05

相关问题