我希望枚举 SQL Server Always On 可用性组中的所有实例。
有一个Dynamic Management View在提供此功能的 SQL Server 中,但您需要连接到相关实例才能查询此 View 。
另外,我可以在集群节点的注册表中看到我希望获得的映射:HKLM\Cluster\Resources\{cluster_guid}\SqlInstToNodeMap
有一个WMI class可以枚举集群上的所有可用性组,但我看不到如何(即使通过检查 PrivateProperties 对象)我可以通过 WMI 将 SQL 实例枚举到集群节点映射 - 有谁知道这是否可能,或者可以提供一种机制不需要查看注册表或查询 SQL Server?
谢谢
最佳答案
不确定这是否有帮助,但您可以使用 SMO 类(class)获得它吗?
Server srv = new Server("instance_name")
您可以访问 AvailabilityReplics每个属性 AvailabilityGroup在AvailabilityGroups集合以获取副本节点,类似于(未测试)
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)
}
}
关于c# - 是否可以通过 WMI 获取 Cluster -> Availability Group Instance Node Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31785536/