Simptomai
Tarkime, kad turite įdiegtą "Microsoft SQL Server 2014", "2016" arba "2017". Galite susidurti su viena ar daugiau iš šių problemų:
-
Rodomas klaidos pranešimas "SQL Server" egzempliorius neatsako ir įvyksta klaida "ne duoda planavimo". Jums gali tekti iš naujo paleisti serverį, kad jį atkurtumėte.
-
Operacijos atšaukimas gali užtrukti ilgą laiką. Daugeliu atvejų paleidus kompiuterį iš naujo, duomenų bazė gali atkurti daug greičiau nei keitimų atšaukimas. Pastaba: yra daug priežasčių, kodėl keitimų atšaukimas gali užtrukti, žr. toliau esantį skyrių "daugiau informacijos", jei reikia išsamios informacijos apie keitimų atkūrimą prieš bandant paleisti iš naujo.
-
Galite matyti didelės "spinlocks", pvz., SOS_OBJECT_STORE, laukimo.
Sprendimas
Ši problema išspręsta Šiame kaupiamųjų naujinimų SQL Server:
Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2017"
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2016"
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2014"
SQL serverio pakeitimų paketo informacija
Šis naujinimas yra išspręsta šiame "SQL Server" pakeitimų pakete:
Pakeitimų paketai yra kaupiamieji. Kiekviename naujame pakeitimų pakete yra visos pataisos, kurios yra ankstesniuose pakeitimų paketuose, taip pat visos naujos pataisos. Mūsų rekomendacija yra taikyti naujausią pakeitimų paketą ir naujausią kaupiamąjį naujinimą šiam pakeitimų paketui. Prieš diegiant naujausią pakeitimų paketą, neturite įdiegti ankstesnio pakeitimų paketo. Naudokite 1 lentelę šiame straipsnyje, jei norite rasti daugiau informacijos apie naujausią pakeitimų paketą ir naujausią kaupiamąjį naujinimą.
Kaip nustatyti "SQL Server" ir jo komponentų versiją, leidimą ir naujinimo lygį
Daugiau informacijos
Yra daug priežasčių, kodėl keitimų atšaukimas gali užtrukti ilgą laiką, pvz., ilgai trunkantį sandorį, didelį skaičių VLFs operacijų žurnalų faile, lėtu/O ir kt. Siekiant patikrinti, ar šiame straipsnyje aprašyta problema yra lėtos ankstesnės versijos priežastis, mes rekomenduojame, kad toliau nurodyti būdai būtų naudojami atliekant ankstesnės operacijos eigos stebėjimą:
-
Iš sys.dm_exec_requestsnustatykite session_id, kurios komanda nustatyta į "NUŽUDYTI/atkurti", ir įsitikinkite, kad seansas KAUPIAMAS ir io, ir CPU laikas rodo progresą. Jei IO nekeičiama, tai gali būti nuoroda, kad jūs susiduria su šiame straipsnyje aprašyta problema.
-
Užklausos sys.dm_tran_database_transactions Norėdami nustatyti dabartinę ankstesnės užklausos būseną, naudodami užklausą, pvz.:
Pasirinkite Getdate () kaip CurrentTime, database_transaction_next_undo_lsn, database_transaction_begin_lsn, t.transaction_id, database_transaction_begin_time, database_transaction_log_record_count, db_name (t.database_id)
IŠ sys.dm_tran_database_transactions t
Prisijungimas prie sys.dm_exec_requests s T.transaction_id = s.transaction_id
KUR t.database_id = db_id ("<duomenų bazės pavadinimas") ir s.session_id =<Session_id atlikti ankstesnės operacijos>
Pastaba:
Aukščiau esančioje užklausoje
database_transaction_next_undo_lsn yra paskesnio įrašo, kurį norite anuliuoti, LSN. database_transaction_begin_lsn yra operacijos pradžios įrašo LSN operacijų logaritme.
database_transaction_next_undo_lsn turėtų būti mažinamas su kiekviena šios užklausos nuotrauka. Keitimų atšaukimas bus sėkmingai baigtas, kai database_transaction_next_undo_lsn pasiekia database_transaction_begin_lsn.
Tikslas čia – atlikti kelias ankstesnio užklausos nuotraukas iš anksto nustatytu intervalu, tada naudoti LSNs, apdorotą database_transaction_next_undo_lsn tame intervale, deltą ir ekstrapoliuoti laiką, kurio reikia norint įvertinti, kiek laiko užtruks database_transaction_next_undo_lsn , kad pasiektų database_transaction_begin_lsn.
Jei keitimų atšaukimas vyksta tinkamo dydžio tarp kiekvienos momentinės kopijos, siūlome, kad "atkurtumėte" būtų leidžiama atlikti atskirai, neperkraunant SQL serverio egzemplioriaus.
Peržiūrėkite šiuos straipsnius daugiau informacijos apie ilgalaikį atkūrimą:
-
"SQL Server" (2000, 2005, 2008): atkūrimas/atšaukimas trunka ilgiau nei tikėtasi
-
Kaip žurnalų failų struktūra gali turėti įtakos duomenų bazės atkūrimo laikui
-
Duomenų bazės atkūrimo eigos sekimas naudojant informaciją iš DMV
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.
Nuorodos
Sužinokite apie terminologiją, kurią "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.