首页 > 解决方案 > 如何获取 sql server 侦听器名称

问题描述

在故障转移群集(无 AVG)上,两个节点,我有两个 SQL 实例注册的逻辑名称与计算机名称不同。我需要获取侦听器(逻辑)SQL 名称以连接到实例以收集一些库存数据。

我使用 get-cluster 命令:

import-module failoverclusters

$Clusters = Get-Cluster 
foreach ($Cluster in $Clusters)
{
  #write-host $Cluster.Name 
  try
  {
      $ClusterResources = Get-ClusterResource -Cluster $Cluster 

      foreach($Resource in $ClusterResources)
      {
      $Resource
      }
   }
   catch [System.Exception]
   {
        write-host "!An error occurred!"
   }
   write-host  ""
} 

我得到:

Name                     State   Group                ResourceType 
----                     -----   -----                ------------
SQL IP Address 1 (nXXX)  Online  SQL Server (M_REP1)  IP Address
SQL IP Address 1 (nYYY)  Online  SQL Server (M_REP2)  IP Address

SQL IP Address 1(nXXX)是监听器,SQL SERVER (M_REP1)实例。
我是否需要处理字符串以获得:nXXX\M_REP1或者是否有其他方法

标签: sql-serverpowershelllistenercluster-computing

解决方案


 SELECT AGS.name  AS AGName, 
     HAGS.primary_replica AS PrimaryInstance 
 FROM   sys.dm_hadr_availability_group_states HAGS 
 INNER JOIN sys.availability_groups AGS 
 ON HAGS.group_id = AGS.group_id

推荐阅读