Améliorations pour la prise en charge de délai de bail AlwaysOn de SQL Server dans SQL Server 2012 et 2014

Symptômes

Cette mise à jour inclut les améliorations suivantes pour la prise en charge de Microsoft SQL Server AlwaysOn bail délai :
  • Le message de délai d’expiration du bail affiche maintenant et enregistre l’heure actuelle et la durée de renouvellement prévu.
  • Un nouveau message d’erreur a été ajouté pour les travailleurs de bail qui indique clairement le motif de délai d’expiration du bail.
  • Un nouvel événement étendu et une nouvelle mémoire tampon d’anneau pour les travailleurs de bail ont été ajoutés. Ils indiquent clairement les phases de bail.

Résolution

Le problème a été tout d’abord été résolu dans les Service Packs suivants pour SQL Server.
Pour plus d’informations sur SQL Server 2012 avec le Service Pack 3 (SP3), consultez les bogues qui sont corrigés dans le Service Pack 3 de SQL Server 2012 .

À propos des Service Packs pour SQL Server

Les Service Packs sont cumulatifs. Chaque nouveau service pack contient tous les correctifs qui se trouvent dans les service packs précédents et tous les nouveaux correctifs. Notre recommandation est d’appliquer le dernier service pack et la mise à jour cumulative la plus récente pour ce service pack. Vous n’avez pas à installer un service pack antérieur avant d’installer le dernier service pack. Utilisez le tableau 1 de l’article suivant pour accéder à des informations supplémentaires sur le dernier service pack et les dernières mises à jour cumulatives.

Comment faire pour déterminer la version, l’édition et le niveau de mise à jour de SQL Server et ses composants

Plus d'informations

Pour fournir des informations supplémentaires, les nouveaux messages d’erreur ont été ajoutés à SQL Server. Le tableau suivant répertorie et décrit chacun d'entre eux.

ErreurMessage d'erreur :CauseAction corrective
19419Le renouvellement de bail entre le groupe de disponibilité ' %. * ls' et le Cluster de basculement Windows Server a échoué car le bail existant n’est plus valide.Le travailleur de bail sur le côté de SQL Server n’a pas obtenir planifié sur le temps pour traiter des signaux d’événements du cluster.Vérifier l’utilisation du processeur sur le serveur en tant que SQL Server travailleur de bail semble être en priver.
19420Le groupe de disponibilité ' %. * ls' sont explicitement demandés d’arrêter le renouvellement de bail.Le renouvellement de bail s’arrête dans le cadre de la mise hors connexion du groupe de la disponibilité. Il s’agit d’information uniquement.
19421Le renouvellement de bail entre le groupe de disponibilité ' %. * ls' et le Cluster de basculement Windows Server a échoué car le renouvellement n’a pas lieu dans l’intervalle du bail.L’application d’assistance de bail sur le côté du cluster n’a pas signaler le travailleur de bail de SQL Server sur le temps.Vérifier disponibilité groupe de ressources correspondant dans le cluster WSFC pour voir si elle a signalé une erreur.
19422Le renouvellement de bail entre le groupe de disponibilité ' %. * ls' et le Cluster de basculement Windows Server a échoué en raison d’une erreur windows avec code d’erreur (%d).Le travailleur de bail sur le côté de SQL Server n’a pas pu renouveler le bail en raison d’une erreur windows.Vérifiez le code d’erreur windows et prenez les mesures correctives.
19423Le bail d’un groupe de disponibilité ' %. * bail de %.*ls n’est plus valide pour démarrer le processus de renouvellement de bail.Lorsque le travailleur de bail lancé le traitement de la durée du bail excès fourni par appel en ligne le bail a déjà expiré. Cela peut se produire en raison de problèmes de planification.Vérifier l’utilisation du processeur sur le serveur en tant que SQL Server travailleur de bail semble être en priver.
19424Le travailleur de bail du groupe de disponibilité ' %. * ls' sont maintenant en état de veille la durée du bail excédentaires (%u ms) fournie au cours en ligne. Il s’agit d’un message d’information uniquement. Aucune action utilisateur n’est requise.Événements d’information. Temps supplémentaire en ligne allouée sur le démarrage du thread de renouvellement de bail et en tant que partie de la routine en ligne de groupe de disponibilité.

Exemple d’erreur 19419 : Si vous utilisez un débogueur à attacher à SQL Server, il interrompt toute opération de maintenance de threads dans le processus SQL Server jusqu'à ce que vous repreniez le processus SQL Server. Lors de la reprise de SQL Server, celui-ci est signalé dans le journal des erreurs SQL Server :

< heure > : Serveur 19419, gravité : 16, état : 1.
< heure > Cluster de basculement de serveur Windows Server n’a pas reçu un signal d’événements de processus à partir du groupe de disponibilité hébergement SQL Server 'ag' dans le délai de bail.
< heure > : Serveur 19407, gravité : 16, état : 1.
< heure > Serveur de bail entre le groupe de disponibilité 'ag' et le Cluster de basculement Windows Server a expiré. Un problème de connexion s’est produite entre l’instance de SQL Server et le Cluster de basculement Windows Server. Pour déterminer si le groupe de disponibilité est basculement correctement, consultez la ressource de groupe de disponibilité correspondant dans le Cluster de basculement Windows Server.
< heure > Server AlwaysOn : Le réplica local du groupe de disponibilité 'ag' va en mode hors connexion, car le bail expiré ou Échec du renouvellement du bail. Il s’agit d’un message d’information uniquement. Aucune action utilisateur n’est requise.
< heure > Serveur, l’état du réplica de disponibilité locale dans le groupe de disponibilité 'ag' a changé de 'PRIMARY_NORMAL' à 'RESOLVING_NORMAL'. L’état de réplica a changé en raison d’un démarrage, un basculement sur incident, un problème de communication ou une erreur de cluster. Pour plus d’informations, consultez le tableau de bord de disponibilité groupe, journal des erreurs SQL Server, console de gestion de clusters avec basculement de Windows Server ou de journal de Cluster de basculement Windows Server.

L’erreur 19419 est renvoyée, car SQL Server n’a pas répondu au service de cluster. Vous pouvez également recevoir un message d’erreur d’expiration bail (19407) avec l’erreur 19419.

Exemple d’erreur 19424: Voici le message de temps excessives de bail qui est signalé juste avant le passage du groupe de disponibilité à rôle principal :

< heure > Serveur du travailleur de bail du groupe de disponibilité 'ag' est maintenant en état de veille la durée du bail excédentaires (ms 164766) fournie au cours en ligne. Il s’agit d’un message d’information uniquement. Aucune action utilisateur n’est requise.
< heure > Serveur, l’état du réplica de disponibilité locale dans le groupe de disponibilité 'ag' a changé de 'PRIMARY_PENDING' à 'PRIMARY_NORMAL'. L’état de réplica a changé en raison d’un démarrage, un basculement sur incident, un problème de communication ou une erreur de cluster. Pour plus d’informations, consultez le tableau de bord de disponibilité groupe, journal des erreurs SQL Server, console de gestion de clusters avec basculement de Windows Server ou de journal de Cluster de basculement Windows Server.

Les availability_group_lease_expired et hadr_ag_lease_renewal XEvents ont été améliorées, grâce à l’ajout de points de données qui fournissent des informations sur la condition du contrat de location. Le tableau suivant décrit les améliorations apportées à ces XEvents :

XEventNouvelle colonneDescription
availability_group_lease_expiredcurrent_timeHeure à laquelle le bail a expiré.
availability_group_lease_expirednew_timeoutTemps de délai d’attente, lorsque availability_group_lease_expired est déclenché, current_time est supérieur à new_timeout
availability_group_lease_expiredétatÉtapes de louer : Voir table de bail étapes ci-dessous
hadr_ag_lease_renewalétathadr_ag_lease_renewal
hadr_ag_lease_renewalerror_codeSi l’état est HadrLeaseRenewal_FailedWithWindowsError code_erreur est le code d’erreur Windows associé à l’échec.
Les phases de bail et définitions

Le tableau suivant répertorie les étapes de bail possibles et décrit leurs fonctions :

Nom de l’étapeDescription
HadrLeaseRenewal_LeaseWorkerStartedDémarrage de la thread de travail de bail.
HadrLeaseRenewal_StartedExcessLeaseSleepDémarrage de bail excessive. Les phases de bail excès du document le démarrage de la thread de bail lors de la phase en ligne du groupe de disponibilité.
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLeaseNous échouer excès bail si le bail a déjà expiré.
HadrLeaseRenewal_SkipExcessSleepNous ignorer le bail excédentaire si la durée disponible pour la mise en veille est inférieure à l’intervalle du bail. Il n’est aucun nécessaire de passer via le menu Démarrer de bail excès simplement le processus d’agiter manuellement.
HadrLeaseRenewal_ExcessSleepSucceededBail excessive réussie.
HadrLeaseRenewal_RenewSucceededNous devrions voir cela avec chaque renouvellement.
HadrLeaseRenewal_LeaseNotValidÉquivalent à une erreur : 19419

Cluster de basculement Windows Server n’a pas reçu un signal d’événements de processus SQL Server qui héberge le groupe de disponibilité ' %. * ls' dans le délai de bail.
HadrLeaseRenewal_StopLeaseRenewalVous devriez voir ceci en cas de basculement.
HadrLeaseRenewal_LeaseExpiredÉquivalent à une erreur : 19421

Hébergement groupe de disponibilité de SQL Server ' %. * ls' n’a pas reçu un signal d’événements de processus à partir du Cluster de basculement Windows Server, dans le délai de bail.
HadrLeaseRenewal_FailedWithWindowsErrorRenouvellement de bail a échoué en raison d’une erreur windows.

Pour plus d’informations, consultez Diagnostics de délai d’expiration de bail d’améliorée AlwaysOn disponibilité groupe.

Pour plus d’informations sur le délai d’expiration du bail, consultez fonctionnement : délai d’expiration du bail SQL Server AlwaysOn.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Propriétés

ID d'article : 3112363 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard

Commentaires