Symptômes
Cette mise à jour inclut les améliorations suivantes pour la prise en charge du délai de bail Microsoft SQL Server AlwaysOn :
-
Le message délai de bail est désormais affiché et enregistre l’heure actuelle et l’heure de renouvellement prévue.
-
Un nouveau message d’erreur a été ajouté pour les travailleurs de baux indiquant clairement le motif du délai d’expiration du bail.
-
Un nouvel événement étendu et une nouvelle mémoire tampon d’anneaux pour les travailleurs au bail ont été ajoutés. Celles-ci indiquent clairement les étapes du bail.
Résolution
Le problème a été résolu dans les service packs suivants pour SQL Server.
Pour plus d’informations sur SQL Server 2012 Service Pack 3 (SP3), voir bogues résolus dans SQL server 2012 Service Pack 3.
Service Pack 2 pour SQL Server pour SQL Server 2014À propos des service packs pour SQL ServerLes Service Packs sont cumulatifs. Chaque nouvelle version contient tous les correctifs fournis dans les Service Packs précédents et tous les nouveaux correctifs. Nous vous recommandons d’appliquer le dernier Service Pack et la dernière mise à jour cumulative de ce Service Pack. Il n'est donc pas nécessaire d'installer la version antérieure d'un Service Pack avant d'installer la dernière version disponible. Utilisez le tableau 1 de l’article suivant pour trouver plus d’informations sur le dernier Service Pack et la dernière mise à jour cumulative.Déterminer le niveau de version, d’édition et de mise à jour de SQL Server et ses composants
Informations supplémentaires
Pour fournir une vision supplémentaire, de nouveaux messages d’erreur ont été ajoutés à SQL Server. Le tableau suivant répertorie et décrit chacun d’eux.
Erreur |
Message d'erreur |
Cause |
Action corrective |
---|---|---|---|
19419 |
Le renouvellement du 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é serveur SQL n’a pas été planifié lors du traitement du signal d’événement du cluster. |
Vérifiez l’utilisation de l’UC sur le serveur, car le travailleur de bail SQL Server semble avoir une privation de temps. |
19420 |
Le groupe de disponibilité'%. * ls’est explicitement invité à arrêter le renouvellement du bail. |
Le renouvellement du bail s’arrête dans le cadre de la mise hors connexion du groupe de disponibilité. Ceci est une information uniquement. |
|
19421 |
Le renouvellement du bail entre le groupe de disponibilité « %. * ls » et le cluster de basculement Windows Server a échoué, car le renouvellement n’a pas eu lieu dans l’intervalle de bail. |
L’assistance de bail sur le côté du cluster ne signale pas le travailleur de bail SQL Server à temps. |
Pour savoir s’il a signalé une erreur, consultez la ressource du groupe de disponibilité correspondant dans le WSFC. |
19422 |
Le renouvellement du bail entre le groupe de disponibilité « %. * ls » et le cluster de basculement Windows Server a échoué en raison d’une erreur Windows avec le code d’erreur (« % d »). |
Le travailleur de bail sur le côté SQL Server n’a pas pu renouveler le bail en raison d’une erreur Windows. |
Vérifiez le code d’erreur Windows et prenez l’action corrective. |
19423 |
Le bail du bail du groupe de disponibilité'%. * ls’n’est plus valide pour démarrer le processus de renouvellement de bail. |
Lorsque le travailleur de bail a commencé à traiter le délai de bail excessif fourni par un appel en ligne, le bail a déjà expiré. Cela peut se produire en raison de problèmes de planification. |
Vérifiez l’utilisation de l’UC sur le serveur, car le travailleur de bail SQL Server semble avoir une privation de temps. |
19424 |
Le travailleur de bail du groupe de disponibilité'%. * ls’est désormais suspendu le délai de bail excessif (% u ms) fourni lors de votre connexion. Il s’agit d’un message d’information uniquement. Aucune action de l’utilisateur n’est requise. |
Information. Durée supplémentaire en ligne allouée au démarrage du thread de renouvellement de bail et dans le cadre de la routine de groupe de disponibilité en ligne. |
Exemple d’erreur 19419 : Si vous utilisez un débogueur à joindre à SQL Server, il interrompt la maintenance des threads du processus SQL Server jusqu’à ce que vous continuiez le processus SQL Server. Lorsque vous reprenez SQL Server, les informations suivantes sont communiquées dans le journal des erreurs SQL Server :
>date et heure de< Erreur du serveur : 19419, gravité : 16, État : 1. > date et heure de<Le cluster de basculement du serveur Windows Server n’a pas reçu de signal d’événement de processus du groupe de disponibilité d’hébergement SQL Server « AG » dans le délai d’expiration du bail. > date et heure de<Erreur du serveur : 19407, gravité : 16, État : 1. > date et heure de<Serveur le bail entre le groupe de disponibilité « AG » et le cluster de basculement Windows Server a expiré. Un problème de connectivité s’est produit entre l’instance de SQL Server et le cluster de basculement du serveur Windows. Pour déterminer si le groupe de disponibilité ne fonctionne pas correctement, consultez la ressource de groupe disponibilité correspondante dans le cluster de basculement du serveur Windows. > date et heure de<Serveur alwaysé : le réplica local du groupe de disponibilité « AG » se déconnecter, car le bail a expiré ou le renouvellement de bail a échoué. Il s’agit d’un message d’information uniquement. Aucune action de l’utilisateur n’est requise. > date et heure de<Serveur l’état du réplica de disponibilité local dans le groupe disponibilité « AG » a changé de « PRIMARY_NORMAL » en « RESOLVING_NORMAL ». L’état de réplica a changé en raison d’un problème de démarrage, de basculement, de communication ou d’une erreur de cluster. Pour plus d’informations, reportez-vous au tableau de bord du groupe disponibilité, au journal des erreurs SQL Server, à la console de gestion des clusters de Windows Server Failover ou au Journal de cluster de basculement
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 de bail (19407) en plus de l’erreur 19419.Exemple d’erreur 19424: le message d’excédent du temps de bail signalé juste avant que le groupe de disponibilité passe au rôle principal :
> date et heure de<Serveur le travailleur de bail du groupe de disponibilité’AG’est désormais suspendu le délai de bail excessif (164766 ms) fourni lors de votre connexion. Il s’agit d’un message d’information uniquement. Aucune action de l’utilisateur n’est requise. > date et heure de<Serveur l’état du réplica de disponibilité local dans le groupe disponibilité « AG » a changé de « PRIMARY_PENDING » en « PRIMARY_NORMAL ». L’état de réplica a changé en raison d’un problème de démarrage, de basculement, de communication ou d’une erreur de cluster. Pour plus d’informations, reportez-vous au tableau de bord du groupe disponibilité, au journal des erreurs SQL Server, à la console de gestion des clusters de Windows Server Failover ou au Journal de cluster de basculement
La availability_group_lease_expired et les hadr_ag_lease_renewal XEvents ont été améliorées, avec l’ajout de points de données qui fournissent des informations supplémentaires sur l’état du bail. Le tableau suivant décrit les améliorations apportées à ces XEvents :
XEvent |
Nouvelle colonne |
Description |
---|---|---|
availability_group_lease_expired |
current_time |
Heure à laquelle le bail a expiré. |
availability_group_lease_expired |
new_timeout |
Temps d’expiration, lorsque availability_group_lease_expired est déclenché, current_time est supérieur à new_timeout |
availability_group_lease_expired |
traité |
Phases de bail : Voir le tableau des étapes de bail ci-dessous |
hadr_ag_lease_renewal |
traité |
hadr_ag_lease_renewal |
hadr_ag_lease_renewal |
error_code |
Si l’État est HadrLeaseRenewal_FailedWithWindowsError error_code correspond au code d’erreur Windows associé à l’échec |
Phases de bail et définitionsLe tableau suivant répertorie les étapes de bail possibles et explique leurs fonctions :
Nom de l’étape |
Description |
---|---|
HadrLeaseRenewal_LeaseWorkerStarted |
Thread du travailleur de bail démarré. |
HadrLeaseRenewal_StartedExcessLeaseSleep |
Début de l’excédent de bail. Les phases de bail supplémentaires documentent le début du thread de bail lors de la phase en ligne du groupe de disponibilité. |
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
Nous ne sommes pas en dépassement si le bail a déjà expiré. |
HadrLeaseRenewal_SkipExcessSleep |
Nous n’avons pas pu précéder le bail si la durée disponible en veille est inférieure à l’intervalle de bail. Il n’est pas nécessaire de passer par le bail excédentaire. |
HadrLeaseRenewal_ExcessSleepSucceeded |
Dépassement du bail. |
HadrLeaseRenewal_RenewSucceeded |
Tout renouvellement doit apparaître. |
HadrLeaseRenewal_LeaseNotValid |
Équivalent à erreur : le groupe de basculement du serveur 19419Windows n’a pas reçu de signal d’événement de processus du groupe de disponibilité d’hébergement SQL Server « %. * ls » dans le délai d’expiration du bail. |
HadrLeaseRenewal_StopLeaseRenewal |
Cela doit apparaître pendant un événement de basculement. |
HadrLeaseRenewal_LeaseExpired |
Équivalent à erreur : le groupe de disponibilité d’hébergement du serveur 19421SQL'%. * ls’n’a pas reçu de signal d’événement de processus du cluster de basculement du serveur Windows dans le délai d’expiration du bail. |
HadrLeaseRenewal_FailedWithWindowsError |
Le renouvellement du bail a échoué en raison d’une erreur Windows. |
Pour plus d’informations, consultez diagnostics améliorés du délai de bail du groupe de disponibilité AlwaysOn. Pour plus d’informations sur le délai de bail, voir fonctionnement : délai de bail SQL Server AlwaysOn.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.