Symptomer
Denne opdatering indeholder følgende forbedringer til understøttelse af Microsoft SQL Server AlwaysOn Lease Timeout:
-
Meddelelsen Timeout for lejemål vises nu og logger det aktuelle tidspunkt og det forventede fornyelsestidspunkt.
-
Der blev tilføjet en ny fejlmeddelelse for leasemedarbejdere, der tydeligt angiver årsagen til timeout for leasing.
-
Der blev tilføjet en ny udvidet begivenhed og en ny ringbuffer til leasemedarbejdere. Disse angiver tydeligt leasingstadierne.
Løsning
Problemet blev først rettet i følgende servicepakker til SQL Server.
Du kan få mere at vide om SQL Server 2012 Service Pack 3 (SP3) under Fejl, der er rettet i SQL Server 2012 Service Pack 3.
Service Pack 2 til SQL Server til SQL Server 2014Om servicepakker til SQL Server Servicepakker er kumulative. Hver ny service pack indeholder alle de rettelser, der var inkluderet i tidligere service packs, samt eventuelle nye rettelser. Vores anbefaling er at anvende den nyeste servicepakke og den seneste akkumulerede opdatering til den pågældende servicepakke. Det er ikke nødvendigt at installere en tidligere servicepakke, før du installerer den seneste udgave. Brug Tabel 1 i følgende artikel for at finde flere oplysninger om den nyeste servicepakke og seneste akkumulerede opdatering.Sådan bestemmer du version, udgave og opdateringsniveau for SQL Server og dens komponenter
Flere oplysninger
Der er føjet nye fejlmeddelelser til SQL Server for at give yderligere indsigt. I følgende tabel vises og forklares hver af dem.
|
Fejl |
Fejlmeddelelse |
Årsag |
Afhjælpende handling |
|---|---|---|---|
|
19419 |
Fornyelsen af rettigheden mellem tilgængelighedsgruppen '%.*ls' og den Windows Server failoverklynge mislykkedes, fordi den eksisterende rettighed ikke længere er gyldig. |
Lejerarbejderen på SQL Server-siden blev ikke planlagt til tiden for at behandle hændelsessignalet fra klyngen. |
Kontrollér CPU-udnyttelsen på serveren, da SQL Server lejearbejder ser ud til at sulte. |
|
19420 |
Tilgængelighedsgruppen '%.*ls' bliver udtrykkeligt bedt om at stoppe fornyelsen af rettigheden. |
Lejefornyelse stopper som en del af at bringe tilgængelighedsgruppen offline. Dette er kun oplysende. |
|
|
19421 |
Fornyelsen af lejemålet mellem tilgængelighedsgruppen '%.*ls' og den Windows Server failoverklynge mislykkedes, fordi fornyelsen ikke fandt sted inden for leasingintervallet. |
Lejerhjælperen på klyngesiden signalerede ikke SQL Server lejearbejder til tiden. |
Kontrollér tilsvarende tilgængelighedsgrupperessource i WSFC-klynge for at se, om der er rapporteret fejl. |
|
19422 |
Fornyelsen af rettigheden mellem tilgængelighedsgruppen '%.*ls' og den Windows Server failoverklynge mislykkedes på grund af en windows-fejl med fejlkoden ('%d'). |
Leasingarbejderen på SQL Server side kunne ikke forny lejemålet på grund af en windows-fejl. |
Kontrollér windows-fejlkoden, og udfør den afhjælpende handling. |
|
19423 |
Lease of availability group '%.*ls' lease is no longer valid to start the lease renewal process. |
Da leasingarbejderen begyndte at behandle den overskydende lejetid, som blev leveret via onlineopkald, var lejekontrakten allerede udløbet. Dette kan ske på grund af planlægningsproblemer. |
Kontrollér CPU-udnyttelsen på serveren, da SQL Server lejearbejder ser ud til at sulte. |
|
19424 |
Lejerarbejderen af tilgængelighedsgruppen '%.*ls' sover nu den overskydende lejetid (%u ms), der leveres online. Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling. |
Informative. Ekstra onlinetid tildelt til at starte lejefornyelsestråden og som en del af tilgængelighedsgruppens onlinerutine. |
Eksempel på fejl 19419: Hvis du bruger et fejlfindingsprogram til at vedhæfte til SQL Server, afbrydes enhver vedligeholdelse af tråde i SQL Server processen, indtil du fortsætter SQL Server-processen. Når du fortsætter SQL Server, rapporteres følgende i fejlloggen for SQL Server:
<dato og klokkeslæt> serverfejl: 19419, alvorsgrad: 16, tilstand: 1. <Dato og klokkeslæt> Server Windows Server failoverklynge modtog ikke et proceshændelsessignal fra SQL Server hosting-tilgængelighedsgruppe "ag" inden for timeoutperioden for lejemålet. <dato klokkeslæt> serverfejl: 19407, alvorsgrad: 16, tilstand: 1. <Dato og klokkeslæt> Server Lejen mellem tilgængelighedsgruppen "ag" og den Windows Server failoverklynge er udløbet. Der opstod et forbindelsesproblem mellem forekomsten af SQL Server og den Windows Server failoverklynge. Hvis du vil afgøre, om tilgængelighedsgruppen mislykkes korrekt, skal du kontrollere den tilsvarende tilgængelighedsgrupperessource i Windows Server failoverklynge. <Dato klokkeslæt> Server AlwaysOn: Den lokale replika af tilgængelighedsgruppen 'ag' går offline, fordi enten lejekontrakten er udløbet, eller fornyelsen af lejekontrakten mislykkedes. Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling. <Dato klokkeslæt> Server Tilstanden for den lokale tilgængelighedsreplika i tilgængelighedsgruppen "ag" er ændret fra "PRIMARY_NORMAL" til "RESOLVING_NORMAL". Replikatilstanden blev ændret på grund af enten en start, en failover, et kommunikationsproblem eller en klyngefejl. Du kan få mere at vide i dashboardet for tilgængelighedsgruppen SQL Server fejllog, Windows Server administrationskonsol til failoverklynge eller Windows Server failoverklyngelog.
Fejlen 19419 returneres, fordi SQL Server ikke reagerede på klyngetjenesten. Du kan også få vist en fejlmeddelelse om timeout for lejemål (19407) sammen med fejlen 19419.Eksempel på fejl 19424: Følgende er meddelelsen om unødvendig lejetid, der rapporteres lige før tilgængelighedsgruppen skifter til PRIMÆR-rolle:
<Dato klokkeslæt> Server Lejearbejderen af tilgængelighed gruppen 'ag' er nu sove den overskydende lejetid (164766 ms) leveret i løbet af online. Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling. <Dato klokkeslæt> Server Tilstanden for den lokale tilgængelighedsreplika i tilgængelighedsgruppen "ag" er ændret fra "PRIMARY_PENDING" til "PRIMARY_NORMAL". Replikatilstanden blev ændret på grund af enten en start, en failover, et kommunikationsproblem eller en klyngefejl. Du kan få mere at vide i dashboardet for tilgængelighedsgruppen SQL Server fejllog, Windows Server administrationskonsol til failoverklynge eller Windows Server failoverklyngelog.
De availability_group_lease_expired og hadr_ag_lease_renewal XEvents er blevet forbedret med tilføjelsen af datapunkter, der giver flere oplysninger om lejekontraktens tilstand. I følgende tabel beskrives forbedringerne af disse XEvents:
|
XEvent |
Ny kolonne |
Beskrivelse |
|---|---|---|
|
availability_group_lease_expired |
current_time |
Det tidspunkt, hvor lejekontrakten udløb |
|
availability_group_lease_expired |
new_timeout |
Timeouttid, når availability_group_lease_expired opløftes, er current_time større end new_timeout |
|
availability_group_lease_expired |
Staten |
Leasingfaser: Se tabellen Lease Stages nedenfor |
|
hadr_ag_lease_renewal |
Staten |
hadr_ag_lease_renewal |
|
hadr_ag_lease_renewal |
error_code |
Hvis tilstanden er HadrLeaseRenewal_FailedWithWindowsError, er error_code den Windows-fejlkode, der er knyttet til fejlen |
Leasingfaser og -definitionerFølgende tabel viser de mulige leasingfaser og forklarer deres funktioner:
|
Fasenavn |
Beskrivelse |
|---|---|
|
HadrLeaseRenewal_LeaseWorkerStarted |
Lease arbejder tråd startet. |
|
HadrLeaseRenewal_StartedExcessLeaseSleep |
Start overskydende lejekontrakt. Overskydende leasingstadier dokumenterer starten af leasingtråden i onlinefasen af tilgængelighedsgruppen. |
|
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
Vi mislykkes den overskydende lejekontrakt, hvis lejemålet allerede er udløbet. |
|
HadrLeaseRenewal_SkipExcessSleep |
Vi springer den overskydende lejekontrakt over, hvis varigheden for slumretilstand er mindre end lejeintervallet. Der er ingen grund til at gå gennem den overskydende lejekontrakt bare starte hånd ryste processen. |
|
HadrLeaseRenewal_ExcessSleepSucceeded |
Overskydende lejemål lykkedes. |
|
HadrLeaseRenewal_RenewSucceeded |
Det bør vi se med hver eneste fornyelse. |
|
HadrLeaseRenewal_LeaseNotValid |
Svarer til fejl: 19419 Windows Server Failover-klynge modtog ikke et proceshændelsessignal fra SQL Server, der er vært for tilgængelighedsgruppen '%.*ls' inden for timeoutperioden for leasing. |
|
HadrLeaseRenewal_StopLeaseRenewal |
Du bør se dette under en failoverhændelse. |
|
HadrLeaseRenewal_LeaseExpired |
Svarer til fejl: 19421 SQL Server, der er vært for tilgængelighedsgruppen '%.*ls', modtog ikke et proceshændelsessignal fra Windows Server failoverklynge inden for lejetimeoutperioden. |
|
HadrLeaseRenewal_FailedWithWindowsError |
Fornyelse af lease mislykkedes på grund af en windows-fejl. |
Du kan få mere at vide under Forbedret AlwaysOn Availability Group Lease Timeout Diagnostics.Du kan få mere at vide om timeout for leasing under Sådan fungerer det: SQL Server AlwaysOn Lease Timeout.
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".