KB2809338 – PATAISYMAS: didelė "žurnalo rašymo laukia" skaitiklio reikšmė „SQL Server“ 2012 arba „SQL Server“ 2014" egzemplioriuje

Taikoma
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Požymiai

        
Tarkime, kad įgalinate funkciją, pvz., "AlwaysOn" prieinamumo grupes, kurios naudoja žurnalo telkinį "Microsoft „SQL Server“ 2012" arba "Microsoft „SQL Server“ 2014" egzemplioriuje. Tokiu atveju žurnalo įrašymo laukimo skaitiklis žurnalo buferiui „SQL Server“ egzemplioriuje turi didelę vertę. Taip pat pastebėsite dideles CMEMTHREAD ir WRITELOG laukimo tipų reikšmes dinaminio valdymo rodiniuose (DMV). Be to, generuojami mini iškelties failai.

Pastaba: Žurnalų telkinys yra operacijų žurnalo talpykla atmintyje. Ši talpykla naudojama, be kitų dalykų: optimizuoti žurnalo skaitymą atkūrimo metu ir keitimų atšaukimo operacijas operacijų replikavime bei "AlwaysOn" prieinamumo grupių funkcijai.

Priežastis

Ši problema kyla, nes žurnalų telkinys naudoja visuotinį visų duomenų bazių loginį žymiklį į atminties objektą (PMO).

Kai daug gijų bando rašyti žurnalus naudojant žurnalų telkinį, visos gijos turi laukti, kol žymeklis bus nukreiptas į atminties objektą, dėl kurio atsiranda ginčas, aprašytas skyriuje Simptomai.

Sprendimas

„SQL Server“ 2014 1 pakeitimų paketas

Pagal numatytuosius nustatymus "„SQL Server“ 2014" 1 pakeitimų pakete yra ši pataisa, todėl jums nereikia pridėti jokių sekimo vėliavėlių, kad įgalintumėte pataisą.

SQL Server 2014

Ši problema buvo išspręsta "„SQL Server“ 2014" RTM versijoje, tačiau vis tiek turite įjungti sekimo vėliavėlę T9024 ir (arba) 8048norėdami suaktyvinti pataisą. Įjungus šią sekimo vėliavėlę, „SQL Server“ egzempliorius padalija žymiklį į atminties objektą mazgo lygiu.

Pastabos

  • Jei problemos išlieka net įjungus sekimo vėliavėlę T9024, taip pat galite įjungti sekimo vėliavėlę T8048, kuri paskirsto žymeklį į atminties objektą procesoriaus lygiu.
  • "„SQL Server“ 2014" 1 pakeitimų pakete (SP1) yra ši pataisa, todėl sekimo vėliavėlės įgalinti nereikia.

          

„SQL Server 2012“

            
Pastaba "„SQL Server“ 2012 Service Pack 3" (SP3) apima šią pataisą, todėl sekimo vėliavėlės įgalinti nereikia.

Kaupiamojo naujinimo informacija

3 kaupiamasis naujinimas, skirtas „SQL Server“ 2012 SP1

Šios problemos pataisa pirmą kartą buvo išleista 3 kaupiamajame naujinime. Norėdami gauti daugiau informacijos apie tai, kaip gauti šį kaupiamąjį naujinimų paketą, skirtą „SQL Server“ SP1, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2812412 3 kaupiamasis naujinimo paketas, skirtas „SQL Server“ 2012" 1 pakeitimų paketuiPastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2012 SP1 pataisų leidimą. Rekomenduojame taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2772858 2012 „SQL Server“ komponavimo versijos, išleistos po 2012 „SQL Server“ 1 pakeitimų paketo išleidimoPastaba: pritaikę karštąją pataisą, turite įgalinti sekimo vėliavėlę T9024, kad suaktyvintumėte pataisą. Įjungus šią sekimo vėliavėlę, „SQL Server“ egzempliorius padalija žymiklį į atminties objektą mazgo lygiu.

Pastaba Jei problemos išlieka net įjungus sekimo vėliavą T9024, taip pat galite įjungti sekimo vėliavą T8048, kuri padalija žymeklį į atminties objektą procesoriaus lygiu.

Karštųjų pataisų informacija

Palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau ši karštoji pataisa skirta ištaisyti tik šiame straipsnyje aprašytą problemą. Taikykite šią karštąją pataisą tik toms sistemoms, kurios susiduria su šia problema.

Jei karštąją pataisą galima atsisiųsti, šio žinių bazės straipsnio viršuje yra skyrius "Karštosios pataisos atsisiuntimas". Jei šis skyrius nerodomas, pateikite užklausą "Microsoft" klientų aptarnavimo ir palaikymo tarnybai, kad gautumėte karštąją pataisą.

Pastaba. Kilus papildomų problemų arba prireikus trikčių diagnostikos, gali tekti sukurti atskirą paslaugos užklausą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka šios konkrečios karštosios pataisos reikalavimų. Norėdami gauti visą "„Microsoft“" klientų aptarnavimo ir palaikymo tarnybos telefonų numerių sąrašą arba sukurti atskirą aptarnavimo užklausą, apsilankykite šioje "„Microsoft“" svetainėje:

/contactus/?ws=support Pastaba: Formoje "Karštųjų pataisų atsisiuntimas yra" rodomos kalbos, kurioms galima naudoti karštąją pataisą. Jei nematote savo kalbos, vadinasi, nėra tos kalbos karštųjų pataisų.

Būtinosios sąlygos „SQL Server“ 2012

Norint taikyti šią karštąją pataisą, kompiuteryje turi būti įdiegta „SQL Server“ 2012 SP1.

Reikia paleisti iš naujo

Pritaikę šią karštąją pataisą, nereikia iš naujo paleisti kompiuterio. „SQL Server“ turi būti paleistas iš naujo naudojant sekimo vėliavėlę T9024. Daugiau informacijos apie tai, kaip sukonfigūruoti „SQL Server“ naudojant paleisties sekimo vėliavėlę, ieškokite Duomenų bazės modulio tarnybos paleisties parinktys.

Failo informacija

Visuotinė karštųjų pataisų versija turi failo atributus (ar vėlesnio failo atributus), nurodytus toliau pateiktoje lentelėje. Šių failų datos ir laikai nurodyti pasauliniu koordinuotuoju laiku (UTC). Peržiūrint failo informaciją, jis konvertuojamas į vietinį laiką. Norėdami sužinoti skirtumą tarp UTC ir vietos laiko, naudokite valdymo skydo elemento Data ir laikas skirtuką Laiko juosta.