Simptomi
Pieņemsim, ka jums ir instalēts Microsoft SQL Server 2014, 2016 vai 2017. Var novērot vienu vai vairākas no šīm problēmām:
-
SQL Server instance tiek parādīta Nereaģējoša, un rodas kļūda "non-Yield plānotājs". Lai atkoptu, iespējams, būs jārestartē serveris.
-
Transakcijas atrite var aizņemt ilgu laiku. Vairumā gadījumu restartējot instanci, datu bāze ļaus atgūt daudz ātrāk nekā atrite. Ņemiet vērā, ka ir vairāki iemesli, kāpēc var paiet ilgāks laiks, un, lai veiktu restartēšanu, detalizētu informāciju par atrites pārraudzību skatiet tālāk esošajā sadaļā Papildinformācija.
-
Jūs, iespējams, redzēsit augstu uzspinlocks, piemēram, SOS_OBJECT_STORE.
Risinājums
Šī problēma ir novērsta šādos kumulatīvos SQL Server atjauninājumos:
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Jaunākais SQL Server 2017 kumulatīvais atjauninājums
Informācija par pakalpojumu pakotnes SQL Server
Šis atjauninājums ir izlabots šajā SQL Server servisa pakotnē:
Pakalpojumu pakotnes ir kumulatīvas. Katrā jaunajā servisa pakotnē ir iekļauti visi labojumi, kas ir iepriekšējās servisa pakotnēs, kā arī visi jaunie labojumi. Mūsu ieteikums ir lietot jaunāko servisa pakotni un jaunāko šīs servisa pakotnes kumulatīvo atjauninājumu. Pirms jaunākās servisa pakotnes instalēšanas jums nav jāinstalē iepriekšējā servisa pakotne. Tālāk esošajā rakstā Izmantojiet 1. tabulu, lai atrastu papildinformāciju par jaunāko servisa pakotni un jaunāko kumulatīvo atjauninājumu.
Kā noteikt SQL Server un tās komponentu versiju, izdevumu un atjaunināšanas līmeni
Papildinformācija
Ir daudz iemeslu, kāpēc atritei var būt nepieciešams ilgs laiks, piemēram, ilgstošs darījums, liels skaits VLFs transakciju žurnālfailā, lēns I/O etc. Lai pārliecinātos, ka šajā rakstā aprakstītā problēma ir lēna atrites cēlonis, mēs iesakām izmantot tālāk norādītos paņēmienus, lai pārraudzītu atriti darbības norisi.
-
No sys.dm_exec_requestsidentificējiet session_id, kura komanda ir iestatīta uz "nonāvēts/atrite", un pārliecinieties, vai sesija uzkrājas gan ievadizvades, gan centrālā procesora laiks. Ja funkcija IO nemainās, iespējams, tas norāda, ka rodas problēma, kas aprakstīta šajā rakstā.
-
Vaicājumu sys.dm_tran_database_transactions , lai noteiktu atrites pašreizējo stāvokli, izmantojot vaicājumu, kas līdzīgs šim:
ATLASIET getDate () kā 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)
NO sys.dm_tran_database_transactions t
PIEVIENOTIES sys.dm_exec_requests s T.transaction_id = s.transaction_id
KUR t.database_id = db_id (' <datu bāzes nosaukums') un s.session_id =<Session_id veikt atriti darbību>
Piezīme:
Šajā vaicājumā
database_transaction_next_undo_lsn ir nākamā ieraksta LSN, ko atsaukt. database_transaction_begin_lsn ir transakcijas reģistrācijas ieraksta sākšanas LSN.
katram šī vaicājuma momentuzņēmumam jāsamazinās database_transaction_next_undo_lsn . Atrite ir veiksmīgi pabeigta, kad database_transaction_next_undo_lsn sasniedz database_transaction_begin_lsn.
Šeit ir jāveic daži iepriekšējā vaicājuma momentuzņēmumi iepriekš noteiktā intervālā un pēc tam jāizmanto LSNs, kas apstrādāts database_transaction_next_undo_lsn šajā intervālā, kā arī jāekstrapolē laiks, kas vajadzīgs, lai novērtētu laiku, kas nepieciešams, lai database_transaction_next_undo_lsn sasniegtu database_transaction_begin_lsn.
Ja atrite tiek progresējusi atbilstoši pieņemamam ātrumam starp katru momentuzņēmumu, ieteicams atļaut to pabeigt atsevišķi, nerestartējot SQL Server instanci.
Lai iegūtu papildinformāciju par ilgstošo atkopšanu, skatiet šos rakstus:
-
SQL Server (2000, 2005, 2008): atkopšana/atrite, kas ilgst vairāk nekā paredzēts
-
Kā žurnālfaila struktūra var ietekmēt datu bāzes atkopšanas laiku
-
Datu bāzes atkopšanas procesa reģistrēšana, izmantojot informāciju no DMV
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.