J'ai un groupe de disponibilité qui a un auditeur .
Le écouteur s'appelle SQLPROD
comme vous pouvez le voir sur l'image ci-dessous. Il utilise Port 14
Quand j'exécute le script suivant:
ALTER AVAILABILITY GROUP [SQLPROD_AG]
ADD LISTENER 'SQLPROD' (WITH IP (('200.1.1.199', '255.255.254.0')));
Je reçois ce message d'erreur (quand il existe déjà):
MSG 19477, niveau 16, État 48, ligne 4 Le groupe de disponibilité 'SQLProd_ag' a déjà un auditeur avec le nom DNS 'SQLProd_ag_SqlProd'. Les groupes de disponibilité ne peuvent avoir qu'un seul auditeur. Utilisez l'auditeur existant ou déposez l'auditeur existant et créez-en un nouveau.
utilisation de toujours sur les groupes de disponibilités Vues de catalogue Je n'ai rien trouvé révélateur:
select * from sys.dm_hadr_auto_page_repair
select * from sys.dm_hadr_cluster_networks
select * from sys.dm_hadr_availability_group_states
select * from sys.dm_hadr_database_replica_cluster_states
select * from sys.dm_hadr_availability_replica_cluster_nodes
select * from sys.dm_hadr_database_replica_states
select * from sys.dm_hadr_availability_replica_cluster_states
select * from sys.dm_hadr_instance_node_map
select * from sys.dm_hadr_availability_replica_states
select * from sys.dm_hadr_name_id_map
select * from sys.dm_hadr_cluster
select * from sys.dm_tcp_listener_states
select * from sys.dm_hadr_cluster_members
select * from sys.availability_databases_cluster
select * from sys.availability_groups_cluster
select * from sys.availability_group_listener_ip_addresses
select * from sys.availability_read_only_routing_lists
select * from sys.availability_group_listeners
select * from sys.availability_replicas
select * from sys.availability_groups
Tout semble bien:
lorsque j'utilise PowerShell, les commandes suivantes:
Import-Module FailoverClusters
cls
Get-ClusterResource
Où puis-je trouver où le nom SQLPROD_AG_SQLPROD
est? Puis-je changer ce nom?
Le message renvoyé n'est pas précis car il se réfère au nom de la ressource de nom de réseau (sqlprod_ag_sqlprod), et il est incorrect de manière incorrecte comme nom DNS. Vous pouvez voir que la ressource de nom de réseau dans votre AG est nommée SQLPROD_AG_SQLPROD, et c'est ce que cela fait référence à.
Cela devrait vraiment dire quelque chose comme ", le groupe de disponibilité" SQLProd_ag 'a déjà un auditeur avec une ressource de nom de réseau de "SQLProd_ag_SqlProd". " Lorsque l'auditeur est créé, la ressource de nom de réseau associée est créée avec un nom selon la syntaxe suivante:
<Availability Group Name>_<DNS name>
Étant donné qu'une ressource avec ce nom existe déjà, elle ne peut pas la créer.
De plus, les traits de soulignement ne sont pas autorisés dans les noms DNS, le nom indiqué dans le message d'erreur n'est évidemment pas un nom DNS.
Pour voir le nom DNS associé à l'écouteur, vous pouvez utiliser SQL Server Management Studio et afficher les propriétés de l'écoute de l'écoute ou utiliser un administrateur de cluster de basculement et afficher les propriétés du nom du réseau.
La commande PowerShell suivante retournera les noms et les noms DNS de toutes les ressources de nom de réseau qui ne sont pas des ressources de cluster de base.
Get-ClusterResource | Where-Object {$_.isCoreResource -eq $false -and $_.ResourceType -eq "Network Name" } | Get-ClusterParameter | Where-Object { $_.Name -eq "DnsName" } | Select ClusterObject, Value
Si vous souhaitez filtrer par un nom AG spécifique, vous utiliseriez Where-Object {$_.OwnerGroup -eq "SQLPROD_AG" -and $_.ResourceType -eq "Network Name' }
Pour la première clause WHERE.
Avec T-SQL, vous pouvez obtenir ceci à partir des vues liées à AG. Pour répertorier tous:
select ag.name, agl.dns_name from sys.availability_group_listeners agl
join sys.availability_groups ag ON ag.group_id = agl.group_id
Pour répertorier uniquement celui de SQLProd_ag, vous devez simplement ajouter une clause suivante:
WHERE ag.name = 'SQLPROD_AG'
Si vous souhaitez utiliser un nom DNS différent pour l'auditeur, vous devez déposer l'auditeur actuel et créer un nouveau.
ALTER AVAILABILITY GROUP SQLPROD_AG REMOVE LISTENER 'SQLPROD'