Symptomen
Stel dat u Microsoft SQL Server 2014, 2016 of 2017 hebt geïnstalleerd. U kunt een of meer van de volgende problemen ondervinden:
-
De SQL Server-instantie blijkt niet meer en er is een fout ' non-yield-Planner ' opgetreden. Mogelijk moet u de server opnieuw opstarten om te kunnen herstellen.
-
Het ongedaan maken van een transactie kan veel tijd in beslag nemen. In de meeste gevallen wordt de database veel sneller hersteld dan de terugdraaiversie. Houd er rekening mee dat het ongedaan maken van de terugdraaiactie kan lang duren, zie de sectie ' meer informatie ' hieronder voor meer informatie over het controleren van terugdraaiversies voordat u opnieuw probeert te starten.
-
U ziet mogelijk veel wacht op spinlocks, zoals SOS_OBJECT_STORE.
Oplossing
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Nieuwste cumulatieve update voor SQL Server 2017
Informatie over service packs voor SQL Server
Deze update is opgelost in het volgende Service Pack voor SQL Server:
Service packs zijn cumulatief. Elk nieuw Service Pack bevat alle correcties in eerdere service packs, samen met eventuele nieuwe oplossingen. We raden u aan het meest recente Service Pack en de nieuwste cumulatieve update voor dat Service Pack toe te passen. U hoeft geen vorig Service Pack te installeren voordat u het nieuwste Service Pack installeert. Gebruik tabel 1 in het volgende artikel voor meer informatie over de meest recente Service Pack en de nieuwste cumulatieve update.
De versie, de editie en het update niveau van SQL Server en de bijbehorende onderdelen bepalen
Meer informatie
Er zijn verschillende redenen waarom een terugdraaiactie lang kan duren, zoals een langdurige transactie, een groot aantal VLFs in het transactielogbestand, een traag I/O-bestand. Om te controleren of het probleem dat in dit artikel wordt beschreven, de hoofdoorzaak van een langzaam herstel verloopt, wordt u aangeraden om de volgende technieken te volgen voor de voortgang van de Terugdraaibewerking:
-
Zoek op sys.dm_exec_requestsnaar de session_id waarvan de opdracht is ingesteld op ' gedood/rollback ' en zorg ervoor dat de sessie zowel i i i i/> processortijd opstelt die de voortgang aangeeft. Als IO niet wordt gewijzigd, is het mogelijk dat u de foutmelding krijgt dat in dit artikel wordt beschreven.
-
Query sys.dm_tran_database_transactions om de huidige status van de terugdraaiactie te identificeren met behulp van een query zoals de volgende:
Selecteer getdate () als 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)
VAN sys.dm_tran_database_transactions t
Deelnemen aan sys.dm_exec_requests s OP t.transaction_id = s.transaction_id
WAARBIJ t.database_id = db_id (' <databasenaam') en s.session_id =<Session_id de terugdraaibewerking uitvoert>
Opmerking:
In de bovenstaande query,
database_transaction_next_undo_lsn het LSN van de volgende record is die u ongedaan wilt maken. database_transaction_begin_lsn is de LSN van de beginrecord voor de transactie in het transactielogboek.
database_transaction_next_undo_lsn moet aflopen met elke momentopname van deze query. Terugdraai wordt voltooid wanneer de database_transaction_next_undo_lsn database_transaction_begin_lsn bereikt.
Het doel is om een aantal momentopnamen van de vorige query binnen een vooraf bepaald interval te maken en gebruik vervolgens de Delta van de LSNs die is verwerkt in database_transaction_next_undo_lsn binnen dat moment en de tijd te extrapoleren die het duurt voordat de database_transaction_next_undo_lsn de database_transaction_begin_lsnbereikt.
Als de terugdraaiactie binnen een goede verhouding tussen elke momentopname verloopt, kunt u het ongedaan maken van de terugdraaiactie zonder dat het SQL Server-exemplaar opnieuw moet worden uitgevoerd.
Zie de volgende artikelen voor meer informatie over langdurige herstelbewerkingen:
-
SQL Server (2000, 2005, 2008): herstel/terugdraaiactie duurt langer dan verwacht
-
De indeling van een logboekbestand kan van invloed zijn op het herstel van een database
-
Voortgang van databaseherstel bijhouden met gegevens uit DMV
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Verwijzingen
Lees meer over de terminologiedie door Microsoft wordt gebruikt om software-updates te beschrijven.