Sümptomid
Vaatame järgmist näidet.
Kasutate Microsoft SQL Server 2014 või Microsoft SQL Server 2012 hoolduspaketti Service Pack 2 (SP2) serveris, mis majutab jooksva versiooniuuenduse osana kättesaadavusrühma teisest koopiat.
Olete SQL Server installile rakendanud ühe järgmistest värskendustest.
- SQL Server 2014 koondvärskendus 5
- SQL Server 2012 Service Pack 2 koondvärskendus 4
- SQL Server 2012 Service Pack 2 koondvärskendus 3
NB! Selles artiklis mainitud kiirparandus asendab need koondvärskendused. Ärge installige neid värskendusi, kui te pole seda veel teinud.
Koondvärskenduse installimise lõpetamiseks taaskäivitage see teisene koopia.
Nurjute saadavusrühma üle, mis viiakse värskendatud teisene koopia üle esmasele rollile.
Selle stsenaariumi puhul võib ilmneda üks või mitu järgmistest sümptomitest serveris, kus töötab SQL Server ja mis majutab nüüd teie kättesaadavusrühma peamist koopiat.
Teisesed koopiad kuvatakse kujul "NOT SYNCHRONIZING".
Kui esitate päringu sys.dm_exec_requests, märkate, et kasutajate seansid ja seanss, mille käsk on "DB_STARTUP", blokeeritakse aeg-ajalt. Samuti võite märgata, et CHECKPOINTI ja DB_STARTUP käskude vahel on blokeeritud.
Tupikud, mis hõlmavad seanssi, mis taastas ühe teie kättesaadavusandmebaasidest, teatatakse SQL Server tõrkelogis. Need logid sarnanevad järgmisega:
<date/time> spid<xx> – taastamine kirjutab andmebaasis <dbname/dbid> kontrollpunkti. See on
ainult informaalne sõnum. Kasutajatoiminguid pole vaja teha.
<date/time> spid<xx> – andmebaasi <dbname/dbid> taastamine lõpule viidud x> sekundiga <(analüüs)
<x> ms, tee <uuesti x> ms, võta <tagasi x> ms.) See on ainult teavitav sõnum. Kasutajatoiminguid pole vaja teha.
…
<date/time> spid<xx> Tõrge: 1205, raskusaste: 13, olek: 28.
<date/time> spid<xx> Transaction (Process ID <xx>) was tupikus lukustatud ressursid teise
ja on valitud tupikohvriks. Käivitage kanne uuesti.Kui saadavaloleku andmebaas on Microsoft SQL Server Service Broker jaoks lubatud, ei pruugita teie kättesaadavusandmebaasi sõnumeid töödelda. Kui käivitate profiili jälgimise tööriista ja seejärel jäädvustate sündmuse "Broker:Message Classify", jäädvustate järgmise sündmuse:
9791, Maakler on saatja andmebaasis keelatud
Märkus. See ei ole süstemaatiline probleem. Võimalik, et saate neid koondvärskendusi rakendada AlwaysOn-i konfiguratsioonis ilma seda probleemi kogemata. Kui olete need koondvärskendused juba rakendanud ja te ei märganud seda probleemi, siis teie süsteemi see ei mõjuta ja see teave ei kehti teie kohta.
Põhjus
See probleem ilmneb, kuna võidujooks esineb vahel süsteemilõimede ja kasutajaühenduste vahel. See takistab koondvärskenduse paikamisloogika hankimist lukud, mis on vajalikud värskendusprotsessi lõpuleviimiseks.
Lahendus
Selle probleemi lahendamiseks rakendage järgmine kriitiline nõudmisel (COD) kiirparandus:
3034679 PARANDUS: AlwaysOn-i kättesaadavusrühmadest võidakse teatada, et need pole SÜNKROONITUD
NB! Peate rakendama selle COD kiirparanduse asemel järgmised koondvärskendused:
- SQL Server 2014 koondvärskendus 5
- SQL Server 2012 Service Pack 2 koondvärskendus 4
- SQL Server 2012 Service Pack 2 koondvärskendus 3
Märkus. Kui olete need koondvärskendused juba rakendanud, peate probleemi lahendamiseks kasutama järgmist lahendust.
Ajutine lahendus
Kuna selle probleemi põhjuseks on kasutajate seansi ja versioonitäiendusseansi vaheline vastuolu kättesaadavusandmebaaside vahel, kuigi andmebaasid siirevad esmasele rollile, peate selle väite kõrvaldama, et lubada andmebaasidel sellest olekust taastada.
Selle probleemi lahendamiseks tehke järgmist.
Proovige järgmisi meetodeid esitatud järjekorras.
1. meetod: andmebaasipääsu kõrvaldamineKui andmebaasidel esineb jaotises "Sümptomid" mainitud sümptomeid, kasutage lukustusblokeerimise tingimuse kõrvaldamiseks ühte või mõlemat järgmistest toimingutest.
- Päringu sys.dm_exec_requests saadavuse andmebaasides nende seansside leidmiseks, kus lukustus blokeeritakse. Kasutage nende seansside lõpetamiseks KILL-lauset.
- Keelake või peatage kättesaadavusandmebaasidele juurdepääsev rakendus.
Kui 1. meetod probleemi ei lahenda, minge jaotisse Meetod 2.
2. meetod: taaskäivitage SQL Server hostiserver Kui rakenduse juurdepääs ja kasutaja juurdepääs on endiselt keelatud, taaskäivitage SQL Server eksemplar, mis majutab mõjutatud kättesaadavuse andmebaase. Selleks tehke järgmist.
- Keelake kättesaadavusrühma automaatne tõrkesiire.
- Taaskäivitage esmase koopia majutava SQL Server mõjutatud eksemplar.
- Lubage kättesaadavusrühma automaatne tõrkesiire.
Pärast mõjutatud andmebaaside täielikku taastamist taastage rakenduse ja kasutaja ühenduvus.
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.
Viited
Lisateavet selle probleemiga seotud koondvärskenduste kohta leiate järgmistest Microsofti teabebaasi artiklitest.