web-dev-qa-db-fra.com

SQL Server TOUJOURS-ON GROUPES DE DISPONIBILITÉ LONDETIMEOUT

Un de mes environnements AG a rencontré l'erreur

Le bail entre le groupe de disponibilité XXXXXXX et le cluster de basculement du serveur Windows a expiré. Un problème de connectivité s'est produit entre l'instance de SQL Server et le cluster de basculement Windows Server. Pour déterminer si le groupe de disponibilité échoue correctement, vérifiez la ressource de groupe de disponibilité correspondante dans le cluster de basculement du serveur Windows.

Je sais maintenant pourquoi cette question s'est produite cependant, je souhaite comprendre pourquoi le groupe de disponibilité s'est écrasé au lieu d'avoir échoué à un autre nœud I.e. Le rôle principal changé pour résoudre était la prochaine erreur. Il a fallu environ 1 minute pour le groupe de disponibilité pour revenir en ligne automatiquement sur le même noeud. Sûrement, il devrait basculer au prochain nœud disponible? Ceci est un groupe de 5 noeuds ayant tous des votes au sein du quorum.

Est-ce juste la façon dont les groupes de disponibilité SQL fonctionnent? I.E. Si l'AG perd la connexion à la DLL de cluster de basculement Windows, il ne peut pas se basculer et se bloquer pour éviter un scénario cérébrale divisé?

Où puis-je configurer ce comportement par défaut d'essayer de reconnecter d'abord avant de défaillir un autre nœud?

1
Daniel Nash

Si vous souhaitez savoir pourquoi, la réponse sera dans le journal du cluster. Si vous avez besoin d'aide à la recherche de dessus, veuillez télécharger le journal du cluster du nœud principal (à l'heure).

La clustering prend les décisions en matière de FCIS et d'AGS avec SQL Server. Le cluster est responsable des mises à jour et des changements de métadonnées, la vérification de la santé, les placements de ressources, etc. et la plupart des gens ne changent pas le comportement de cluster par défaut qui doit redémarrer la ressource après une période de temps.

Comme dans votre cas, il est connecté une minute plus tard, la meilleure suppression sans le journal de cluster est que c'est ce qui est survenu, d'autant plus que vous avez déclaré que les paramètres de clustering par défaut n'ont pas été modifiés.

Plus d'infos 1 : https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn281898 (v = ws.11)? redirigéfrom = msdn

Plus d'infos 2 : https://support.microsoft.com/en-us/help/228923/cluster-resources-can-be-configuré-to-Restart-automatiquement Englisons

powershell

Gui

donc, le redémarrage de la ressource signifie-t-il le redémarrage de l'instance SQL?

Non, il redémarre la ressource AG qui n'est pas une instance SQL Server.

Ce que je ne comprends pas, c'est que si son objectif de redémarrer le service SQL avant d'essayer un basculement (lorsqu'il s'agit d'un lèsetimeout) - ne serait-il pas redémarrer le service/ressource causer un basculement de toute façon?

Non, parce que ce n'est pas l'instance. Le groupe de disponibilité attaché à cette ressource cessera de la synchronisation et ira dans un état résolu mais l'instance elle-même n'aura aucun problème.

En tant que complément à Réponse de Sean Gallardy , l'échec automatique est fondamentalement dépendant des domaines suivants:

  1. échec_condition_level : (Par défaut 3), dans votre cas, l'incident ressemble à l'automne sous FAILURE_CONDITION_LEVEL = 2, par hasard si vous le définissez à 1 Il ne considérera pas les conditions de niveau plus élevé, c'est-à-dire 2 , 3, 4 et 5 qui ne résulte aucun échec automatique
  2. Mode d'échec: Si la réplique secondaire est failover_mode Non défini sur Automatique (en particulier les propriétés AG), le AG n'échoue pas automatiquement automatiquement dans un échec_confondition_level
  3. propriétaires possibles chez WSFC : Si vous sélectionnez un nœud uniquement dans la liste des ressources AG et le rôle groupé contenant cette ressource ne peut pas échouer.

En référence au point n ° 1 et 2, vous pouvez vérifier la configuration actuelle avec la requête suivante:

select name, failure_condition_level 
from sys.availability_groups_cluster
go

select  replica_server_name, 
        endpoint_url, 
        availability_mode_desc,
        failover_mode_desc
from sys.availability_replicas
go
1
Shekar Kola