Published on

April 15, 2016

Gestion des groupes de disponibilité multi-nœuds dans SQL Server

Les groupes de disponibilité (AG) dans SQL Server sont une fonctionnalité puissante qui permettent des solutions de haute disponibilité et de reprise après sinistre. Cependant, la gestion des AG multi-nœuds peut être un défi, en particulier lorsqu’il s’agit d’identifier la réplique principale. Dans cet article, nous explorerons une requête T-SQL qui peut aider à simplifier la gestion des AG multi-nœuds.

Un des problèmes courants de la gestion des AG via l’interface graphique est que la plupart du travail doit être effectué à partir de la réplique principale. Bien qu’il soit possible de se connecter à une réplique secondaire, les informations disponibles sont limitées et il peut être difficile de déterminer quelle réplique est actuellement la principale. Cela conduit souvent au processus fastidieux de se connecter à chaque réplique une par une jusqu’à ce que la principale soit trouvée.

Heureusement, il existe une requête T-SQL qui peut fournir toutes les informations nécessaires sur les AG et leurs bases de données membres, y compris le nom de la réplique principale. Voici la requête :

SELECT AG.name AS NomDuGroupeDeDisponibilité,
       HAGS.primary_replica AS NomDeLaRépliquePrincipale,
       HARS.role_desc AS DescriptionDuRôleDeLaRépliqueLocale,
       DRCS.database_name AS NomDeLaBaseDeDonnées,
       HDRS.synchronization_state_desc AS DescriptionDeL'ÉtatDeSynchronisation,
       HDRS.is_suspended AS EstSuspendue,
       DRCS.is_database_joined AS EstRejointe
FROM master.sys.availability_groups AS AG
LEFT OUTER JOIN master.sys.dm_hadr_availability_group_states AS HAGS
    ON AG.group_id = HAGS.group_id
INNER JOIN master.sys.availability_replicas AS AR
    ON AG.group_id = AR.group_id
INNER JOIN master.sys.dm_hadr_availability_replica_states AS HARS
    ON AR.replica_id = HARS.replica_id AND HARS.is_local = 1
INNER JOIN master.sys.dm_hadr_database_replica_cluster_states AS DRCS
    ON HARS.replica_id = DRCS.replica_id
LEFT OUTER JOIN master.sys.dm_hadr_database_replica_states AS HDRS
    ON DRCS.replica_id = HDRS.replica_id AND DRCS.group_database_id = HDRS.group_database_id
ORDER BY AG.name, DRCS.database_name

Cette requête peut être exécutée sur n’importe quelle réplique au sein de l’AG, et elle renverra des informations détaillées sur les AG et leurs bases de données membres. Plus important encore, elle inclut le nom de l’instance de réplique principale, ce qui facilite l’identification de la principale sans avoir besoin d’essais et d’erreurs manuels.

En utilisant cette requête T-SQL, vous pouvez rationaliser la gestion des AG multi-nœuds dans SQL Server. Que vous préfériez utiliser PowerShell ou l’interface graphique, avoir la possibilité d’identifier rapidement la réplique principale peut vous faire gagner du temps et des efforts dans la gestion de vos AG.

Nous espérons que cet article vous aidera dans vos tâches d’administration SQL Server. Si vous avez des questions ou avez besoin d’une assistance supplémentaire, n’hésitez pas à laisser un commentaire ci-dessous.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.