2015-08-03 13 views
1

我希望枚举SQL Server Always On Availability Group中的所有实例。是否可以通过WMI获取群集 - >可用性组实例节点映射?

在SQL Sever中有一个Dynamic Management View它提供了这个,但是你需要连接到相关的实例来查询这个视图。

另外,我可以在注册表中的群集上的一个节点看到,有是我希望得到的映射:HKLM\Cluster\Resources\{cluster_guid}\SqlInstToNodeMap

有一个WMI class,可以列举群集上的所有可用性组,但我(即使通过检查PrivateProperties对象)我可以通过WMI枚举SQL实例到群集节点映射 - 有谁知道这是否可能,或者可以提供一种机制,不需要查看注册表或查询SQL Server ?

感谢

回答

1

不知道这是否可以帮助,但你可以使用SMO类得到它?

Server srv = new Server("instance_name") 

您可以访问每个AvailabilityGroupAvailabilityGroups集合中的AvailabilityReplics属性来获取副本节点,像(未经测试)

Server srv = new Server("instance_name") 
foreach(AvialbilityGroup grp in srv.AvailabilityGroups) 
{ 
    Console.WriteLine("Found group {0} on instance {1}", grp.Name, srv.InstanceName); 
    Console.WriteLine(" Replicas:"); 
    foreach(AvailabilityReplica replica in grp.AvailabilityReplicas) 
    { 
    Console.WriteLine(" Replica Name: {0}, Cluster Name: {1}", replica.Name, repica.Parent.Parent.ClusterName) 
    } 
} 
+0

嗨 - 感谢您的答复。虽然这很有用,但它不是我想要的,因为我不想直接查询SQL Server,而是通过某种API从集群的AG资源获取实例列表 – Kram

相关问题