Simptome
Această actualizare include următoarele îmbunătățiri pentru Microsoft SQL Server AlwaysOn Lease supportability:
-
Mesajul de expirare a contractului de lucru se afișează acum și înregistrează ora curentă și timpul de reînnoire așteptat.
-
S-a adăugat un nou mesaj de eroare pentru lucrătorii în leasing care indică clar motivul pentru expirarea contractului de leasing.
-
S-a adăugat un nou eveniment extins și un nou tampon de inele pentru lucrătorii în leasing. Acestea indică în mod clar etapele de leasing.
Rezolvare
Problema a fost remediată pentru prima dată în următoarele pachete Service Pack pentru SQL Server.
Pentru mai multe informații despre SQL Server 2012 Service Pack 3 (SP3), consultați erori remediate în SQL server 2012 Service Pack 3.
Service Pack 2 pentru SQL Server pentru SQL Server 2014Despre pachetele Service Pack pentru SQL ServerPachetele Service Pack sunt cumulative. Fiecare pachet Service Pack nou conține toate remedierile care se află în pachetele de servicii anterioare, împreună cu orice remedieri noi. Recomandarea noastră este să aplicați cel mai recent pachet Service Pack și cea mai recentă actualizare cumulativă pentru acel pachet Service Pack. Nu trebuie să instalați un pachet de servicii anterior înainte de a instala cel mai recent pachet Service Pack. Utilizați tabelul 1 din următorul articol pentru a găsi mai multe informații despre cel mai recent pachet Service Pack și cea mai recentă actualizare cumulativă.Cum se determină nivelul de versiune, ediție și actualizare a SQL Server și componentele sale
Mai multe informații
Pentru a furniza informații suplimentare, au fost adăugate noi mesaje de eroare în SQL Server. Următorul tabel listează și explică fiecare dintre ele.
Eroare |
Mesaj de eroare |
Cauză |
Acțiune corectivă |
---|---|---|---|
19419 |
Reînnoirea contractului de leasing între grupul disponibilitate '%. * ls ' și clusterul de failover Windows Server nu a reușit, deoarece leasingul existent nu mai este valid. |
Lucrătorul în leasing din partea SQL Server nu s-a programat la timp pentru a procesa semnalul evenimentului din cluster. |
Verificați dacă utilizarea CPU pe server este un lucrător de leasing SQL Server pare să fie înfometat. |
19420 |
Grupul disponibilitate '%. * ls ' este solicitat în mod expres să oprească reînnoirea contractului de leasing. |
Reînnoirea contractului de leasing se oprește ca parte din aducerea offline a grupului de disponibilitate. Acest lucru este doar informativ. |
|
19421 |
Reînnoirea contractului de leasing între grupul disponibilitate '%. * ls ' și grupul failover Windows Server nu a reușit, deoarece reînnoirea nu a avut loc în intervalul de leasing. |
Asistentul de leasing din partea de grupare nu a semnalat la timp lucrătorul de leasing SQL Server. |
Bifați resurse de grup de disponibilitate corespunzătoare în cluster WSFC pentru a vedea dacă a raportat vreo eroare. |
19422 |
Reînnoirea contractului de leasing între grupul disponibilitate '%. * ls ' și clusterul de failover Windows Server nu a reușit din cauza unei erori Windows cu codul de eroare ('% d '). |
Lucrătorul în leasing din SQL Server Side nu a reușit să reînnoiască contractul de leasing din cauza unei erori Windows. |
Verificați codul de eroare Windows și luați acțiunea corectivă. |
19423 |
Contractul de leasing al grupului de disponibilitate '%. * ls ' Lease nu mai este valabil pentru a porni procesul de reînnoire a contractului de leasing. |
Atunci când lucrătorul în leasing a început să proceseze timpul de leasing în exces furnizat de apelul online, contractul de leasing a fost deja expirat. Acest lucru s-ar putea întâmpla din cauza problemelor de planificare. |
Verificați dacă utilizarea CPU pe server este un lucrător de leasing SQL Server pare să fie înfometat. |
19424 |
Lucrătorul în leasing al grupului de disponibilitate '%. * ls ' doarme acum în excesul de timp de leasing (% u MS) furnizat în timpul online. Acesta este doar un mesaj informational. Nu este necesară nicio acțiune de utilizator. |
Informativ. Timp suplimentar online alocat pentru a începe firul de reînnoire a contractului de leasing și, ca parte a rutinei online a grupului de disponibilitate. |
Exemplu de eroare 19419: Dacă utilizați un depanator pentru a-l atașa la SQL Server, acesta întrerupe orice deservire a firelor în procesul SQL Server până când reluați procesul SQL Server. Atunci când reluați SQL Server, se raportează următoarele în Jurnalul de erori SQL Server:
<dată> Eroare Server: 19419, severitate: 16, stare: 1. <dată> Clusterul de failover server Windows Server nu a primit un semnal de eveniment de proces din grupul de disponibilitate SQL server hosting ' AG ' din perioada de expirare a contractului de leasing. <dată> Eroare Server: 19407, severitate: 16, stare: 1. <dată> Server contractul de leasing între grupul de disponibilitate ' AG ' și clusterul de failover Windows Server a expirat. A apărut o problemă de conectivitate între instanța SQL Server și Windows Server failover cluster. Pentru a determina dacă grupul disponibilitate nu reușește corect, Verificați resursele corespunzătoare de grup de disponibilitate din Windows Server failover cluster. <dată> Server AlwaysOn: reproducerea locală a grupului de disponibilitate ' AG ' va fi offline, deoarece contractul de leasing a expirat sau reînnoirea nu a reușit. Acesta este doar un mesaj informational. Nu este necesară nicio acțiune de utilizator. <dată> Server starea reproducerii locale de disponibilitate din grupul disponibilitate ' AG ' s-a modificat de la ' PRIMARY_NORMAL ' la ' RESOLVING_NORMAL '. Starea reproducerii s-a modificat din cauza unei Startup, a unui failover, a unei probleme de comunicare sau a unei erori de cluster. Pentru mai multe informații, consultați tabloul de bord disponibilitate grup, jurnal de erori SQL Server, consolă de gestionare Windows Server failover cluster sau jurnal de clustere Windows Server failover.
Eroarea 19419 s-a returnat, deoarece SQL Server nu a răspuns la serviciul de cluster. De asemenea, este posibil să primiți un mesaj de eroare de expirare a contractului de leasing (19407) împreună cu eroarea 19419.Exemplu de eroare 19424: următorul este mesajul de timp de leasing în exces care este raportat chiar înainte de tranzițiile de grup de disponibilitate la rolul principal:
<dată> Server contractul de închiriere al grupului de disponibilitate ' AG ' doarme acum în excesul de timp de leasing (164766 MS) furnizat în timpul online. Acesta este doar un mesaj informational. Nu este necesară nicio acțiune de utilizator. <dată> Server starea reproducerii locale de disponibilitate din grupul disponibilitate ' AG ' s-a modificat de la ' PRIMARY_PENDING ' la ' PRIMARY_NORMAL '. Starea reproducerii s-a modificat din cauza unei Startup, a unui failover, a unei probleme de comunicare sau a unei erori de cluster. Pentru mai multe informații, consultați tabloul de bord disponibilitate grup, jurnal de erori SQL Server, consolă de gestionare Windows Server failover cluster sau jurnal de clustere Windows Server failover.
Availability_group_lease_expired și hadr_ag_lease_renewal XEvents au fost îmbunătățite, cu adăugarea punctelor de date care oferă mai multe informații despre starea contractului de leasing. Următorul tabel descrie îmbunătățirile acestor XEvents:
XEvent |
Coloană nouă |
Descriere |
---|---|---|
availability_group_lease_expired |
current_time |
Ora la care a expirat contractul de leasing |
availability_group_lease_expired |
new_timeout |
Timpul de expirare, când availability_group_lease_expired este ridicat, current_time este mai mare decât new_timeout |
availability_group_lease_expired |
starea |
Etapele de leasing: consultați tabelul stadii de leasing de mai jos |
hadr_ag_lease_renewal |
starea |
hadr_ag_lease_renewal |
hadr_ag_lease_renewal |
error_code |
Dacă statul este HadrLeaseRenewal_FailedWithWindowsError atunci error_code este codul de eroare Windows asociat cu eroarea |
Etapele și definițiile de leasingUrmătorul tabel listează etapele posibile de leasing și explică funcțiile acestora:
Nume scenă |
Descriere |
---|---|
HadrLeaseRenewal_LeaseWorkerStarted |
S-a pornit firul de lucrător în leasing. |
HadrLeaseRenewal_StartedExcessLeaseSleep |
Se pornește chiria în exces. Etapele de leasing în exces documentează începutul firului de leasing în timpul fazei online a grupului de disponibilitate. |
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
Nu reușim să efectuăm chiria în exces dacă contractul de leasing este deja expirat. |
HadrLeaseRenewal_SkipExcessSleep |
Omitem excedentul de leasing dacă durata disponibilă pentru repaus este mai mică decât intervalul de leasing. Nu este necesar să parcurgeți procesul de leasing în exces, pur și simplu începeți procesul de scuturare a mâinilor. |
HadrLeaseRenewal_ExcessSleepSucceeded |
Leasingul în exces a reușit. |
HadrLeaseRenewal_RenewSucceeded |
Ar trebui să vedem acest lucru cu fiecare reînnoire. |
HadrLeaseRenewal_LeaseNotValid |
Echivalent cu eroarea: cluster failover server 19419Windows nu a primit un semnal de eveniment de proces din grupul de disponibilitate SQL server hosting '%. * ls ' din perioada de expirare a contractului de leasing. |
HadrLeaseRenewal_StopLeaseRenewal |
Ar trebui să vedeți acest lucru în timpul unui eveniment de failover. |
HadrLeaseRenewal_LeaseExpired |
Echivalent cu eroarea: 19421SQL server hosting Group '%. * ls ' nu a primit un semnal de eveniment de proces din Windows Server failover cluster din perioada de expirare a contractului de leasing. |
HadrLeaseRenewal_FailedWithWindowsError |
Reînnoirea leasingului nu a reușit din cauza unei erori Windows. |
Pentru mai multe informații, consultați diagnosticarea de expirare a unui grup de disponibilitate AlwaysOn pentru leasing. Pentru mai multe informații despre expirarea contractului de leasing, consultați cum funcționează: expirarea contractului de leasing SQL Server AlwaysOn.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.