2

我希望枚举 SQL Server Always On 可用性组中的所有实例。

SQL Sever 中有一个动态管理视图提供此功能,但您需要连接到相关实例才能查询此视图。

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

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

谢谢

4

1 回答 1

1

不确定这是否有帮助,但您可以使用 SMO 课程获得它吗?

Server srv = new Server("instance_name")

您可以访问AvailabilityGroups集合中每个AvailabilityGroupAvailabilityReplics属性以获取副本节点,例如(未经测试)

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)
  }
}
于 2015-08-03T12:47:03.383 回答