是否可以通过WMI获取群集 - >可用性组实例节点映射?
问题描述:
我希望枚举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 ?
感谢
答
不知道这是否可以帮助,但你可以使用SMO类得到它?
Server srv = new Server("instance_name")
您可以访问每个AvailabilityGroup的AvailabilityGroups集合中的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)
}
}
嗨 - 感谢您的答复。虽然这很有用,但它不是我想要的,因为我不想直接查询SQL Server,而是通过某种API从集群的AG资源获取实例列表 – Kram