Simptomi
Pretpostavimo da imate instaliran Microsoft SQL Server 2014, 2016 ili 2017. Možda ćete doživjeti jedan ili više sljedećih problema:
-
Instanca sustava SQL Server ne reagira i pojavljuje se pogreška "nepopustljiv planer". Možda ćete morati ponovno pokrenuti poslužitelj da biste se oporavili.
-
Vraćanje transakcije može potrajati dugo vremena. U većini slučajeva ponovno pokretanje instance dopustit će bazu podataka da se oporavi mnogo brže od vraćanja. Imajte na čemu da je potrebno dugo vrijeme da se završi vraćanje, pogledajte odjeljak "Dodatne informacije" u nastavku da biste saznali više o praćenjem povlačenja prije ponovnog pokretanja.
-
Možda ćete vidjeti visoku čekanje na spinlockove kao što je SOS_OBJECT_STORE.
Rješenje
Taj je problem riješen u sljedećim kumulativnim ažuriranjima za SQL Server:
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Najnovije Kumulativno ažuriranje za SQL Server 2017
Informacije o servisnom paketu za SQL Server
Ovo je ažuriranje sređeno u sljedećem servisnom paketu za SQL Server:
Servisni paketi kumulativni su. Svaki novi servisni paket sadrži sve popravke koji se nalaze u prethodnim servisnim paketima, zajedno sa svim novim ispravcima. Preporučujemo da primijenite najnoviji servisni paket i najnovije Kumulativno ažuriranje za taj servisni paket. Prije nego što instalirate najnoviji servisni paket, ne morate instalirati prethodni servisni paket. U sljedećem članku koristite tablicu 1 da biste pronašli dodatne informacije o najnovijem servisnom paketu i najnovijem kumulativnom ažuriranju.
Određivanje razine verzije, izdanja i ažuriranja sustava SQL Server i njenih komponenti
Dodatne informacije
Postoje brojni razlozi zbog kojih vraćanje može potrajati dugo vremena, kao što je dugotrajna transakcija, veliki broj VLFs-a u datoteci zapisnika transakcija, Slow I/O itd. Da biste provjerili je li problem opisan u ovom članku uzrok sporog vraćanja, preporučujemo da se sljedeće tehnike koriste za praćenje tijeka operacije vraćanja:
-
Iz sys.dm_exec_requestsodredite session_id čija je naredba postavljena na "ubijeno/vraćanjem" i provjerite je li sesija akumulirala vrijeme io i CPU u kojem se pokazuje napredak. Ako se IOA ne mijenja, onda može biti pokazatelj da nailazite na problem opisan u ovom članku.
-
Sys.dm_tran_database_transactions upita da biste odredili trenutno stanje vraćanja pomoću upita kao što je sljedeće:
Odaberite Getdate () kao 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)
IZ sys.dm_tran_database_transactions t
PRIDRUŽIVANJE sys.dm_exec_requests s NA t.transaction_id = s.transaction_id
Gdje t.database_id = db_id (' <naziv baze podataka') i s.session_id =<Session_id obavljanje operacije vraćanja>
Upozorenje:
U gornjem upitu
database_transaction_next_undo_lsn je LSN sljedećeg zapisa koji treba poništiti. database_transaction_begin_lsn je LSN od početka zapisa za transakciju u zapisniku transakcije.
database_transaction_next_undo_lsn bi se trebao smanjiti uz svaki snimak ovog upita. Vraćanje će se uspješno dovršiti kada database_transaction_next_undo_lsn dosegne database_transaction_begin_lsn.
Cilj je ovdje uzeti nekoliko snimaka prethodnog upita unutar unaprijed određenog intervala, a zatim koristiti Deltu na isns-u obrađenim u database_transaction_next_undo_lsn u tom intervalima i ekstrapolirati vrijeme provedeno u cilju procjene vremena koje će biti potrebno da bi database_transaction_next_undo_lsn došao do database_transaction_begin_lsn.
Ako se vraćanje vraća na pristojnu stopu između svake brze snimke, predlažemo da se vraćanje bude dopušteno samostalno dovršiti bez ponovnog pokretanja instance sustava SQL Server.
Dodatne informacije o dugotrajnom oporavku potražite u sljedećim člancima:
-
SQL Server (2000, 2005, 2008): oporavak/vraćanje traje dulje od očekivanog
-
Način na koji struktura datoteka zapisnika može utjecati na vrijeme oporavka baze podataka
-
Praćenje tijeka oporavka baze podataka pomoću podataka iz servisa DMV
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Reference
Saznajte više o terminologijikoju Microsoft koristi za opisivanje softverskih ažuriranja.