Sümptomid
Oletagem, et teil on installitud Microsoft SQL Server 2014, 2016 või 2017. Teil võib esineda üks või mitu järgmistest probleemidest.
- SQL Server eksemplar ei reageeri ja ilmneb tõrge "Mittesisaldav ajasti". Võimalik, et peate taastamiseks serveri taaskäivitama.
- Tehingu tagasipööramine võib võtta kaua aega. Enamasti võimaldab eksemplari taaskäivitamine andmebaasil taastada palju kiiremini kui tagasipööramine. Pange tähele, et tagasipööramine võib võtta kaua aega, kuna tagasipööramine võib võtta palju aega, vaadake allpool olevat jaotist "Lisateave", et saada üksikasjalikku teavet jälgimise tagasipööramise kohta enne taaskäivitamise katset.
- Spinlockidel (nt SOS_OBJECT_STORE) võidakse oodata väga palju.
Lahendus
See probleem on lahendatud järgmistes SQL Server koondvärskendustes:
SQL Server 2017 koondvärskendus 9
SQL Server 2016 SP2 koondvärskendus 2
Teave SQL Server koondvärskenduste kohta.
Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.
Uusim koondvärskendus SQL Server 2017 jaoks
Uusim koondvärskendus SQL Server 2016 jaoks
Uusim koondvärskendus SQL Server 2014 jaoks
SQL Server hoolduspaketi teave
See värskendus on lahendatud järgmises SQL Server hoolduspaketis:
Hoolduspakett Service Pack 3 for SQL Server 2014
Teave SQL Server hoolduspakettide kohta.
Hoolduspaketid on kumulatiivsed. Iga uus hoolduspakett sisaldab kõiki varasemates hoolduspakettides sisalduvaid parandusi koos uute parandustega. Meie soovitus on rakendada selle hoolduspaketi jaoks uusim hoolduspakett ja uusim koondvärskendus. Te ei pea enne uusima hoolduspaketi installimist installima eelmist hoolduspaketti. Uusima hoolduspaketi ja uusima koondvärskenduse kohta lisateabe saamiseks kasutage järgmises artiklis toodud tabelit 1.
SQL Server ja selle komponentide versiooni, väljaande ja värskendustaseme määratlemine
Tagasipööramiseks võib olla mitu põhjust, näiteks pikaajaline tehing, suur hulk VLF-e tehingulogi failis, aeglane I/O jne. Selleks et kontrollida, kas selles artiklis kirjeldatud probleem on aeglase tagasipööramise algpõhjus, soovitame tagasipööramistoimingu edenemise jälgimiseks kasutada järgmisi meetodeid:
- Tuvastage sys.dm_exec_requests session_id, mille käsu väärtuseks on määratud "KILLED/ROLLBACK" ja veenduge, et seanss koguneks nii IO-le kui ka protsessoriajale, mis näitab edenemist. Kui IO ei muutu, võib see viidata selles artiklis kirjeldatud probleemile.
- Päring sys.dm_tran_database_transactions , et tuvastada tagasipööramise praegune olek järgmise päringu abil:
Märkus.
- SELECT getdate() as 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)
- FROM sys.dm_tran_database_transactions t
- JOIN sys.dm_exec_requests s
ON t.transaction_id=s.transaction_id - WHERE t.database_id=db_id('<Database Name') and s.session_id=<Session_id performing the rollback operation>
Märkus:
Ülaltoodud päringus
database_transaction_next_undo_lsn on tagasivõtmiseks järgmise kirje LSN. database_transaction_begin_lsn on tehingulogi kande alguskirje LSN.
database_transaction_next_undo_lsn peaks selle päringu iga hetktõmmise korral vähenema. Tagasipööramine viiakse lõpule, kui database_transaction_next_undo_lsn jõuab database_transaction_begin_lsn.
Siin on eesmärk teha eelmääratletud intervalliga eelmisest päringust mõned hetktõmmised ja seejärel kasutada selle intervalliga database_transaction_next_undo_lsn töödeldud LSN-ide deltat ja ekstrapoleerida aega, mis kulub database_transaction_next_undo_lsndatabase_transaction_begin_lsn jõudmiseks.
Kui tagasipööramine edeneb iga hetktõmmise vahel korraliku kiirusega, soovitame tagasipööramist lubada iseseisvalt lõpule viia ilma SQL Server eksemplari taaskäivitamata.
Lisateavet pikaajalise taaste kohta leiate järgmistest artiklitest.
- SQL Server taastejõudluse mõistmine
- SQL Server (2000, 2005, 2008): taaste/tagasipööramine võtab oodatust kauem aega
- Kuidas võib logifaili struktuur mõjutada andmebaasi taastamise aega?
- Andmebaasitaaste edenemise jälgimine DMV teabe abil
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.
Viited
Lisateave Microsofti tarkvaravärskenduste terminoloogia kohta.