Jelenségek
Ez a frissítés az alábbi fejlesztéseket tartalmazza a Microsoft SQL Server AlwaysOn-bérlet időtúllépésének támogatásához:
-
A Bérlet időtúllépése üzenet ekkor megjeleníti és naplózza az aktuális időt és a várható megújítási időt.
-
Új hibaüzenet jelent meg a bérlet feldolgozói számára, amely egyértelműen jelzi a bérlet időtúllépésének okát.
-
Új bővített esemény és egy új gyűrűpuffer lett hozzáadva a bérletmunkások számára. Ezek egyértelműen jelzik a bérletszakaszokat.
Megoldás
A problémát először a következő szervizcsomagokban javítottuk ki a SQL Server.
A SQL Server 2012 Service Pack 3 (SP3) szervizcsomaggal kapcsolatos további információkért lásd a SQL Server 2012 Service Pack 3 szervizcsomagban kijavított hibákat.
Service Pack 2 for SQL Server for SQL Server 2014A SQL Server Service csomagok szervizcsomagjai összegzőek. Minden új szervizcsomag tartalmazza a korábbi szervizcsomagokban található összes javítást, valamint az esetleges új javításokat. Javasoljuk, hogy alkalmazza a legújabb szervizcsomagot és a szervizcsomag legújabb összegző frissítését. A legújabb szervizcsomag telepítése előtt nem kell telepítenie egy korábbi szervizcsomagot. A következő cikk 1. táblázatában további információt talál a legújabb szervizcsomagról és a legújabb összegző frissítésről.A SQL Server és összetevői verziójának, kiadásának és frissítési szintjének meghatározása
További információ
A további megállapítások érdekében új hibaüzenetek lettek hozzáadva a SQL Server. Az alábbi táblázat felsorolja és ismerteti őket.
|
Hiba |
Hibaüzenet |
A probléma oka |
Korrekciós művelet |
|---|---|---|---|
|
19419 |
A(z) %.*ls rendelkezésreállási csoport és a Windows Server feladatátvevő fürt közötti bérlet megújítása meghiúsult, mert a meglévő bérlet már nem érvényes. |
A SQL Server oldalon lévő bérletfeldolgozó nem lett időben ütemezve a fürt eseményjelének feldolgozásához. |
Ellenőrizze a kiszolgáló processzorkihasználtságát, mivel SQL Server bérletfeldolgozó éhezőnek tűnik. |
|
19420 |
A rendszer kifejezetten kéri a(z) %.*ls rendelkezésre állási csoportot a bérlet megújításának leállítására. |
A bérlet megújítása a rendelkezésre állási csoport offline állapotba hozásának részeként leáll. Ez csak tájékoztató jellegű. |
|
|
19421 |
A(z) %.*ls rendelkezésreállási csoport és a Windows Server feladatátvevő fürt közötti bérlet megújítása meghiúsult, mert a megújítás nem történt meg a bérletintervallumon belül. |
A fürtoldali bérletsegítő nem jelezte időben a SQL Server bérletfeldolgozónak. |
Ellenőrizze a megfelelő rendelkezésreállási csoport erőforrását a WSFC-fürtben, és ellenőrizze, hogy jelentett-e hibát. |
|
19422 |
A(z) %.*ls rendelkezésreállási csoport és a Windows Server feladatátvevő fürt közötti bérlet megújítása hibakódú Windows-hiba (%d) miatt meghiúsult. |
A SQL Server oldalon lévő bérletfeldolgozó windowsos hiba miatt nem tudta megújítani a bérletet. |
Ellenőrizze a Windows hibakódját, és hajtsa végre a korrekciós műveletet. |
|
19423 |
A(z) %.*ls rendelkezésreállási csoport bérlete már nem érvényes a bérlet megújítási folyamatának elindításához. |
Amikor a bérletfeldolgozó megkezdte az online hívás által biztosított többletbérleti idő feldolgozását, a bérlet már lejárt. Ez ütemezési problémák miatt fordulhat elő. |
Ellenőrizze a kiszolgáló processzorkihasználtságát, mivel SQL Server bérletfeldolgozó éhezőnek tűnik. |
|
19424 |
A(z) %.*ls rendelkezésreállási csoport bérletfeldolgozója most már az online állapotban megadott többletbérleti időt (%u ms) használja. Ez csak tájékoztató üzenet. Nincs szükség felhasználói műveletre. |
Információs. A bérletmegújítási szál elindításához és a rendelkezésreállási csoport online rutinjának részeként elérhető extra online idő. |
Példa a 19419-ben előforduló hibára: Ha hibakeresőt használ a SQL Server csatolásához, az megszakítja a SQL Server folyamat szálainak karbantartását, amíg nem folytatja a SQL Server folyamatot. A SQL Server folytatásakor a rendszer a következőket jelenti a SQL Server hibanaplóban:
<dátum és idő> kiszolgálóhiba: 19419, súlyosság: 16, állapot: 1. <dátumidő> kiszolgáló Windows Server feladatátvevő fürt nem kapott folyamatesemény-jelet SQL Server üzemeltetési rendelkezésreállási csoporttól a bérlet időkorlátja alatt. <dátum és idő> kiszolgálóhiba: 19407, súlyosság: 16, állapot: 1. <dátum és idő> kiszolgáló: A rendelkezésreállási csoport (ag) és a Windows Server feladatátvevő fürt közötti bérlet lejárt. Csatlakozási hiba történt a SQL Server példánya és a Windows Server feladatátvevő fürt között. Annak megállapításához, hogy a rendelkezésreállási csoport feladatátvétele megfelelően történik-e, ellenőrizze a megfelelő rendelkezésreállási csoport erőforrását a Windows Server feladatátvevő fürtben. <dátum és idő> server AlwaysOn: A rendelkezésreállási csoport helyi replikája (ag) offline állapotba kerül, mert a bérlet lejárt, vagy a bérlet megújítása sikertelen volt. Ez csak tájékoztató üzenet. Nincs szükség felhasználói műveletre. <Dátum és idő> Kiszolgáló A rendelkezésreállási csoport helyi rendelkezésre állási replikájának állapota "PRIMARY_NORMAL"-ról "RESOLVING_NORMAL"-ra változott. A replika állapota indítás, feladatátvétel, kommunikációs probléma vagy fürthiba miatt megváltozott. További információ: rendelkezésreállási csoport irányítópultja, SQL Server hibanapló, Windows Server Feladatátvevőfürt-felügyeleti konzol vagy Windows Server Feladatátvevő fürt naplója.
A rendszer az 19419-et adja vissza, mert SQL Server nem válaszolt a fürtszolgáltatásra. Előfordulhat, hogy a bérlet időtúllépési hibaüzenete (19407) és az 19419-s hiba is megjelenik.Példa az 19424-ben előforduló hibára: A következő a bérlet túllépése üzenet, amely közvetlenül azelőtt jelent meg, hogy a rendelkezésreállási csoport ELSŐDLEGES szerepkörre vált:
<dátum és idő> kiszolgáló A rendelkezésreállási csoport (ag) bérletfeldolgozója most már az online állapotban megadott többletbérleti időt (164766 ms) is elalszik. Ez csak tájékoztató üzenet. Nincs szükség felhasználói műveletre. <dátum és idő> kiszolgáló A rendelkezésreállási csoportban lévő helyi rendelkezésre állási replika állapota "PRIMARY_PENDING"-ról "PRIMARY_NORMAL"-ra változott. A replika állapota indítás, feladatátvétel, kommunikációs probléma vagy fürthiba miatt megváltozott. További információ: rendelkezésreállási csoport irányítópultja, SQL Server hibanapló, Windows Server Feladatátvevőfürt-felügyeleti konzol vagy Windows Server Feladatátvevő fürt naplója.
Továbbfejlesztettük a availability_group_lease_expired és a hadr_ag_lease_renewal XEvents-t, olyan adatpontok hozzáadásával, amelyek további információt nyújtanak a bérlet feltételéről. Az alábbi táblázat az XEvents fejlesztéseit ismerteti:
|
XEvent |
Új oszlop |
Leírás |
|---|---|---|
|
availability_group_lease_expired |
current_time |
A bérlet lejártának időpontja |
|
availability_group_lease_expired |
new_timeout |
Időtúllépési idő, amikor availability_group_lease_expired keletkezik, current_time nagyobb, mint new_timeout |
|
availability_group_lease_expired |
Állami |
Bérletszakaszok: lásd az alábbi Bérletszakaszok táblázatot |
|
hadr_ag_lease_renewal |
Állami |
hadr_ag_lease_renewal |
|
hadr_ag_lease_renewal |
error_code |
Ha az állapot HadrLeaseRenewal_FailedWithWindowsError akkor error_code a hibához társított Windows-hibakód |
Bérletszakaszok és -definíciókAz alábbi táblázat felsorolja a lehetséges bérletszakaszokat, és ismerteti azok funkcióit:
|
Szakasz neve |
Leírás |
|---|---|
|
HadrLeaseRenewal_LeaseWorkerStarted |
A bérletfeldolgozó szál elindult. |
|
HadrLeaseRenewal_StartedExcessLeaseSleep |
Felesleges bérlet indítása. A felesleges bérletszakaszok dokumentálják a bérletszál indítását a rendelkezésre állási csoport online fázisában. |
|
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
A felesleges bérlet meghiúsul, ha a bérlet már lejárt. |
|
HadrLeaseRenewal_SkipExcessSleep |
Kihagyjuk a felesleges bérletet, ha az alvó állapot időtartama kisebb, mint a bérletintervallum. Nem kell átmenni a felesleges bérlet csak indítsa el a kéz rázza folyamat. |
|
HadrLeaseRenewal_ExcessSleepSucceeded |
A felesleges bérlet sikeres volt. |
|
HadrLeaseRenewal_RenewSucceeded |
Ezt minden megújításkor látni kell. |
|
HadrLeaseRenewal_LeaseNotValid |
Egyenértékű a következő hibával: 19419 Windows Server A feladatátvevő fürt nem kapott folyamatesemény-jelet SQL Server(z) %.*ls üzemeltetési rendelkezésreállási csoporttól a bérlet időkorlátja alatt. |
|
HadrLeaseRenewal_StopLeaseRenewal |
Ezt feladatátvételi esemény során kell látnia. |
|
HadrLeaseRenewal_LeaseExpired |
A következő hibával egyenértékű: 19421 SQL Server a(z) %.*ls üzemeltetési rendelkezésreállási csoport nem kapott folyamatesemény-jelet a Windows Server feladatátvevő fürttől a bérlet időkorlátja alatt. |
|
HadrLeaseRenewal_FailedWithWindowsError |
A bérlet megújítása windowsos hiba miatt meghiúsult. |
További információ: Továbbfejlesztett AlwaysOn rendelkezésreállási csoportbérlet időtúllépési diagnosztikái.A bérletek időtúllépésével kapcsolatos további információkért lásd: How It Works: SQL Server AlwaysOn Lease Timeout (Az AlwaysOn bérlet időtúllépése).
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.