Partager via


Stratégie flexible pour le basculement automatique d'un groupe de disponibilité (SQL Server)

Une stratégie de basculement flexible vous offre un contrôle granulaire sur les conditions qui entraînent le basculement automatique d’un groupe de disponibilité. En changeant les conditions d'échec qui déclenchent un basculement automatique et la fréquence des contrôles d'intégrité, vous pouvez augmenter ou diminuer la probabilité d'un basculement automatique pour assurer le contrat de niveau de service relatif à la haute disponibilité.

La stratégie de basculement flexible d'un groupe de disponibilité est définie par son niveau de condition et le seuil du délai d'attente de contrôle d'intégrité. Lorsque le dépassement du niveau de condition d'échec ou du seuil du délai d'attente de contrôle d'intégrité d'un groupe de disponibilité est détecté, la DLL de ressource du groupe de disponibilité répond au Clustering de basculement Windows Server (WSFC). Le cluster WSFC initialise un basculement automatique vers le réplica secondaire.

Important

Si un groupe de disponibilité dépasse le seuil d'échec WSFC, le cluster WSFC ne tente pas un basculement automatique du groupe de disponibilité. En outre, le groupe de ressources WSFC du groupe de disponibilité reste à l'état d'échec jusqu'à ce que l'administrateur de cluster mette manuellement le groupe de ressources en ligne ou jusqu'à ce que l'administrateur de base de données exécute un basculement manuel du groupe de disponibilité. Le seuil d'échec WSFC est le nombre maximal d'échecs autorisés pour le groupe de disponibilité au cours d'une période donnée. La période par défaut est de six heures, et la valeur par défaut du nombre maximal d’échecs au cours de cette période est n-1, où n est le nombre de nœuds de WSFC. Pour modifier les valeurs de seuil/d'échec pour un groupe de disponibilité donné, utilisez la console du gestionnaire de basculement WSFC.

Seuil du délai d'attente de contrôle d'intégrité

La DLL de ressource WSFC du groupe de disponibilité exécute un contrôle d’intégrité du réplica principal en appelant la procédure stockée sp_server_diagnostics sur l’instance de SQL Server qui héberge le réplica principal. sp_server_diagnostics retourne les résultats à un intervalle égal à 1/3 du seuil du délai d’attente de vérification d’intégrité pour le groupe de disponibilité. Le seuil par défaut du délai d’attente de vérification d’intégrité est de 30 secondes, ce qui signifie que sp_server_diagnostics répond à un intervalle de 10 secondes. Si la procédure sp_server_diagnostics est lente ou ne renvoie aucune information, la DLL de ressource attend la fin de l’intervalle du seuil du délai d’attente de vérification d’intégrité avant de déterminer que le réplica principal ne répond pas. Si le réplica principal ne répond pas, un basculement automatique est initialisé, si actuellement pris en charge.

Important

sp_server_diagnostics n’exécute pas de vérifications d’intégrité au niveau de la base de données.

Niveau de condition d'échec

Le fait que les données de diagnostic et les informations d’intégrité renvoyées par sp_server_diagnostics justifient ou non un basculement automatique dépend du niveau de condition d’échec du groupe de disponibilité. Le niveau de condition d’échec spécifie les conditions d’échec qui déclenchent un basculement automatique. Il existe cinq niveaux de condition d'échec, allant du moins restrictif (niveau 1) au plus restrictif (le niveau 5). Chaque niveau comprend les niveaux moins restrictifs. Par conséquent, le niveau de condition le plus strict, le niveau 5, inclut les quatre conditions moins restrictives (1 à 4), et ainsi de suite.

Important

Les bases de données endommagées et suspectes ne sont détectées par aucun niveau de condition d'échec. Par conséquent, une base de données qui est endommagée ou suspecte (que ce soit en raison d'une défaillance matérielle, de l'altération des données ou de tout autre problème) ne déclenche jamais de basculement automatique.

Le tableau suivant décrit les conditions d'échec qui correspondent à chaque niveau.

Level Condition d'échec Valeur Transact-SQL Valeur PowerShell
Une Le serveur est arrêté. Il s'agit du niveau le moins restrictif. Spécifie qu'un basculement automatique est initialisé lorsque l'une des conditions suivantes se produit :

Le service SQL Server est fermé.

Le bail du groupe de disponibilité pour la connexion au cluster WSFC expire car aucun accusé de réception n'est reçu de l'instance de serveur. Pour plus d'informations, consultez Fonctionnement : délai d'expiration de bail AlwaysOn SQL Server.
1 OnServerDown
Deux Le serveur ne répond pas. Spécifie qu'un basculement automatique est initialisé lorsque l'une des conditions suivantes se produit :

L'instance SQL Server ne se connecte pas au cluster et le seuil du délai d'attente de contrôle d'intégrité spécifié par l'utilisateur pour le groupe de disponibilité est dépassé.

Le réplica de disponibilité est dans un état d'échec.
2 OnServerUnresponsive
Trois Erreur critique du serveur. Spécifie qu'un basculement automatique est initialisé en cas d'erreurs internes critiques SQL Server , telles que les verrouillages spinlock orphelins, les violations graves d'accès en écriture, ou en cas de trop de vidages. C'est le niveau par défaut. 3 OnCriticalServerError
Quatre Erreur de serveur modérée. Spécifie qu'un basculement automatique est initialisé en cas d'erreurs internes modérées SQL Server , telles qu'une condition persistante de mémoire insuffisante dans le pool de ressources interne SQL Server . 4 OnModerateServerError
Cinq Conditions d'échec qualifiées. Il s'agit du niveau le plus restrictif. Spécifie qu'un basculement automatique est initialisé pour toutes les conditions d'échec qualifiées, notamment :

Insuffisance des threads de travail du moteur SQL.

Détection d'un blocage insoluble.
5 OnAnyQualifiedFailureConditions

Notes

L'absence de réponse par une instance de SQL Server aux demandes des clients n'est pas pertinente pour les groupes de disponibilité.

Tâches associées

Pour configurer un basculement automatique

Contenu associé

Voir aussi

Vue d'ensemble des groupes de disponibilité AlwaysOn (SQL Server)
Modes de disponibilité (groupes de disponibilité AlwaysOn)
Basculement et modes de basculement (groupes de disponibilité AlwaysOn)
Clustering de basculement Windows Server (WSFC) avec SQL Server
Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)