Simptome
Această actualizare include următoarele îmbunătățiri pentru suportabilitatea microsoft SQL Server AlwaysOn Lease Timeout:
-
Mesajul Expirare leasing 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ă în mod clar motivul expirării contractului de leasing.
-
S-a adăugat un nou eveniment extins și un nou tampon pentru cercul de angajați în leasing. Acestea indică în mod clar etapele leasingului.
Rezolvare
Problema a fost remediată mai întâi în următoarele pachete Service Pack pentru SQL Server.
Pentru mai multe informații despre SQL Server 2012 Service Pack 3 (SP3), consultați erorile remediate în SQL Server 2012 Service Pack 3.
Service Pack 2 pentru SQL Server pentru SQL Server 2014Despre pachetele Service Pack pentru pachetele SQL Server Service sunt cumulative. Fiecare pachet Service Pack nou conține toate remedierile din pachetele Service Pack 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 pachetul Service Pack respectiv. Nu trebuie să instalați un pachet Service Pack 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 al SQL Server și componentele sale
Mai multe informații
Pentru a oferi detalii suplimentare, au fost adăugate noi mesaje de eroare la SQL Server. Următorul tabel listează și explică fiecare dintre acestea.
|
Eroare |
Mesaj de eroare |
Cauză |
Acțiune corectivă |
|---|---|---|---|
|
19419 |
Reînnoirea contractului de leasing între grupul de disponibilitate "%.*ls" și Windows Server Cluster de reluare în caz de nereușită a eșuat, deoarece leasingul existent nu mai este valid. |
Lucrătorul în leasing din partea SQL Server nu a fost programat la timp pentru procesarea semnalului de eveniment de la cluster. |
Verificați utilizarea CPU pe server ca SQL Server lucrător în leasing pare să fie foame. |
|
19420 |
Grupului de disponibilitate "%.*ls" i se solicită în mod explicit să oprească reînnoirea contractului de leasing. |
Reînnoirea leasingului se oprește ca parte a aducerii offline a grupului de disponibilitate. Acesta este doar informativ. |
|
|
19421 |
Reînnoirea contractului de leasing între grupul de disponibilitate "%.*ls" și Windows Server Cluster de reluare în caz de nereușită a eșuat, deoarece reînnoirea nu a avut loc în intervalul de leasing. |
Ajutor de leasing pe partea cluster-ul nu semnala SQL Server lucrător în leasing la timp. |
Verificați resursa de grup de disponibilitate corespunzătoare din clusterul WSFC pentru a vedea dacă a raportat vreo eroare. |
|
19422 |
Reînnoirea leasingului între grupul de disponibilitate "%.*ls" și clusterul Windows Server de reluare în caz de nereușită a eșuat din cauza unei erori windows cu cod de eroare ('%d'). |
Lucrător în leasing pe partea SQL Server nu a reușit să reînnoiască de leasing din cauza unei erori Windows. |
Verificați codul de eroare Windows și efectuați acțiunea de corecție. |
|
19423 |
Leasingul grupului de disponibilitate "%.*ls" nu mai este valid pentru a începe procesul de reînnoire a leasingului. |
În cazul în care lucrătorul în leasing a început procesarea excesul de timp de leasing furnizate de apel online de leasing a fost deja expirat. Acest lucru se poate întâmpla din cauza problemelor de planificare. |
Verificați utilizarea CPU pe server ca SQL Server lucrător în leasing pare să fie foame. |
|
19424 |
Lucrătorul în leasing al grupului de disponibilitate "%.*ls" este acum în repaus la timpul de leasing în exces (%u ms) furnizat în timpul online. Acesta este doar un mesaj informativ. Nu este necesară nicio acțiune a utilizatorului. |
Informaţionale. Timp online suplimentar alocat pentru a începe firul de reînnoire a leasingului ș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, întrerupe orice service al firelor din procesul de SQL Server până când reluați procesul de SQL Server. Atunci când reluați SQL Server, se raportează următoarele în jurnalul de erori SQL Server:
<Dată oră> Eroare server: 19419, Severitate: 16, Stare: 1. <Dată oră> Server Windows Server Cluster de nereușită nu a primit un semnal de eveniment de proces de la grupul de disponibilitate de găzduire SQL Server 'ag' în perioada de expirare a leasingului. <Dată oră> Eroare server: 19407, Severitate: 16, Stare: 1. <Dată oră> Server A expirat contractul de leasing între grupul de disponibilitate 'ag' și clusterul de Windows Server de reluare în caz de nereușită. A apărut o problemă de conectivitate între instanța de SQL Server și clusterul Windows Server de reluare în caz de nereușită. Pentru a determina dacă grupul de disponibilitate nu reușește corect, verificați resursa grupului de disponibilitate corespunzătoare în clusterul Windows Server de reluări în caz de nereușită. <Dată oră> Server AlwaysOn: Reproducerea locală a grupului de disponibilitate "ag" trece offline, deoarece contractul de închiriere a expirat sau reînnoirea leasingului nu a reușit. Acesta este doar un mesaj informativ. Nu este necesară nicio acțiune a utilizatorului. <dată oră> Server Starea reproducerii de disponibilitate locală din grupul de disponibilitate "ag" s-a modificat de la "PRIMARY_NORMAL" la "RESOLVING_NORMAL". Starea reproducerii s-a modificat din cauza unei porniri, a unei reluări în caz de nereușită, a unei probleme de comunicare sau a unei erori de cluster. Pentru mai multe informații, consultați tabloul de bord al grupului de disponibilitate, jurnalul de erori SQL Server, Windows Server consola de gestionare a clusterelor pentru nereușită sau Windows Server jurnalul clusterului de reluare în caz de nereușită.
Eroarea 19419 este returnată, deoarece SQL Server nu a răspuns la serviciul cluster. De asemenea, este posibil să primiți un mesaj de eroare de expirare a leasingului (19407), împreună cu eroarea 19419.Exemplu de eroare 19424: Iată mesajul privind timpul de închiriere în exces raportat chiar înainte ca grupul de disponibilitate să treacă la rolul PRIMARY:
<Dată oră> Server Lucrătorul în arendă al grupului de disponibilitate "ag" este acum adormit timpul de leasing exces (164766 ms) furnizate în timpul online. Acesta este doar un mesaj informativ. Nu este necesară nicio acțiune a utilizatorului. <dată oră> Server Starea reproducerii de disponibilitate locală din grupul de disponibilitate "ag" s-a modificat de la "PRIMARY_PENDING" la "PRIMARY_NORMAL". Starea reproducerii s-a modificat din cauza unei porniri, a unei reluări în caz de nereușită, a unei probleme de comunicare sau a unei erori de cluster. Pentru mai multe informații, consultați tabloul de bord al grupului de disponibilitate, jurnalul de erori SQL Server, Windows Server consola de gestionare a clusterelor pentru nereușită sau Windows Server jurnalul clusterului de reluare în caz de nereușită.
Availability_group_lease_expired și hadr_ag_lease_renewal XEvents au fost îmbunătățite, cu adăugarea de puncte de date care oferă mai multe informații despre condiția leasingului. 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 închiriere |
|
availability_group_lease_expired |
new_timeout |
Expirare, când se ridică availability_group_lease_expired, current_time este mai mare decât new_timeout |
|
availability_group_lease_expired |
Stat |
Etape leasing: consultați tabelul Etape leasing de mai jos |
|
hadr_ag_lease_renewal |
Stat |
hadr_ag_lease_renewal |
|
hadr_ag_lease_renewal |
error_code |
Dacă starea este HadrLeaseRenewal_FailedWithWindowsError atunci error_code este codul de eroare Windows asociat erorii |
Etapele și definițiileleasingului Următorul tabel listează etapele de leasing posibile și explică funcțiile acestora:
|
Nume etapă |
Descriere |
|---|---|
|
HadrLeaseRenewal_LeaseWorkerStarted |
Fir de lucru leasing a început. |
|
HadrLeaseRenewal_StartedExcessLeaseSleep |
Se pornește un contract de leasing î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 contractul de leasing în exces dacă contractul de leasing este deja expirat. |
|
HadrLeaseRenewal_SkipExcessSleep |
Omitem contractul de leasing în exces dacă durata disponibilă pentru repaus este mai mică decât intervalul de leasing. Nu este nevoie pentru a merge prin contract de leasing exces doar începe procesul de mână scutura. |
|
HadrLeaseRenewal_ExcessSleepSucceeded |
Contract de leasing excesiv a reușit. |
|
HadrLeaseRenewal_RenewSucceeded |
Ar trebui să vedem acest lucru la fiecare reînnoire. |
|
HadrLeaseRenewal_LeaseNotValid |
Echivalent cu eroarea: 19419 Windows Server Clusterul de nereușită nu a primit un semnal de eveniment de proces de la SQL Server hosting availability group "%.*ls" în perioada de expirare a leasingului. |
|
HadrLeaseRenewal_StopLeaseRenewal |
Ar trebui să vedeți acest lucru în timpul unui eveniment de nereușită. |
|
HadrLeaseRenewal_LeaseExpired |
Echivalent cu eroarea: 19421 SQL Server grupul de disponibilitate de găzduire "%.*ls" nu a primit un semnal de eveniment de proces de la clusterul Windows Server de nereușită în perioada de expirare a leasingului. |
|
HadrLeaseRenewal_FailedWithWindowsError |
Reînnoirea leasingului nu a reușit din cauza unei erori windows. |
Pentru mai multe informații, consultați Diagnosticarea expirării timpului de expirare pentru grupul de disponibilitate AlwaysOn îmbunătățit.Pentru mai multe informații despre expirarea leasingului, consultați Cum funcționează: SQL Server Timpul de leasing AlwaysOn.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.