Simptomi
Tokom pokretanja sistema Microsoft SQL Server, primetićete neke od sledećih simptoma odmah po završetku oporavka baze podataka i omogućavanju veza sa klijentom.
Simptom 1
Dobijate poruke o greškama i tvrdnje koje podsećaju na sledeće u evidenciji grešaka za SQL Server:
Napomena
2014-12-13 08:03:34.85 spid24s Korišćenje 'dbghelp.dll' verzije '4.0.5'
2014-12-13 08:03:34.85 spid24s **Dump nit - spid = 0, EC = 0x0000000082274B20
2014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt
2014-12-13 08:03:34.85 spid24s * *******************************************************************************
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:34.85 spid24s * BEGIN STACK DUMP:
2014-12-13 08:03:34.85 spid24s * 12/13/14 08:03:34 spid 24
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:34.85 spid24s * Lokacija: ghost.cpp:1742
2014-12-13 08:03:34.85 spid24s * Izraz: tcln1 != NULL
2014-12-13 08:03:34.85 spid24s * SPID: 24
2014-12-13 08:03:34.85 spid24s * Proces ID: 35444
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:35.47 spid24s Greška: 17066, Ozbiljnost: 16, Država: 1.
2014-12-13 08:03:35.47 spid24s SQL Server Assertion: File: <ghost.cpp>, line=1742 Failed Assertion = 'tcln1 != NULL'. Ova greška je možda povezana sa vremenom. Ako se greška nastavi pojavljivati i posle ponovnog pokretanja instrukcije, koristite DBCC CHECKDB da biste proverili strukturni integritet baze podataka ili ponovo pokrenite server da biste se uverili da strukture podataka u memoriji nisu oštećene.
Simptom 2
Dobijate poruke o grešci i izuzetke koji podsećaju na sledeće u evidenciji grešaka za SQL Server:
Napomena
2014-12-13 12:38:30.25 spid51 Korišćenje 'dbghelp.dll' verzije '4.0.5'
2014-12-13 12:38:30.25 spid51 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0003.txt
13.12.2014. 12:38:30.25 spid51 SqlDumpExceptionHandler: Proces 51 je generisao fatalni izuzetak c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server obustavlja ovaj proces.
13.12.2014 12:38:30.25 spid51 * *******************************************************************************
13.12.2014 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 * POČETAK STACK DUMP:
2014-12-13 12:38:30.25 spid51 * 12/13/14 12:38:30 spid 51
13.12.2014 12:38:30.25 spid51 *
13.12.2014 12:38:30.25 spid51 *
13.12.2014. 12:38:30.25 spid51 * Adresa izuzetka = 000000000030D47C Module(sqlservr+00000000000FD47C)
13.12.2014. 12:38:30.25 spid51 * Kôd izuzetka = c0000005 EXCEPTION_ACCESS_VIOLATION
13.12.2014. 12:38:30.25 spid51 * Došlo je do kršenja pristupa adresa za čitanje FFFFFFFFFFFFFFFF
2014-12-13 12:38:30.25 spid51 * Ulazni bafer 54 bajtova -
2014-12-13 12:38:30.25 SPID51 * Izvršni usp_select1
13.12.2014. 12:38:30.77 Greška servera: 17310, Stepen značaja: 20, Stanje: 1.
13.12.2014. 12:38:30.77 Server Zahtev korisnika iz sesije sa SPID 51 generisao je fatalni izuzetak. SQL Server prekida ovu sesiju. Obratite se uslugama podrške za proizvode sa deponom proizvedenom u direktorijumu evidencije.
Povreda pravila pristupa će imati sledeći stek poziva:
SQLSERVR! TaskGhostCleanup::IsHashed+0x8d
SQLSERVR! TaskGhostCleanup::Enqueue+0x32
SQLSERVR! IndexRowScanner::MoveToRowOnNextPage+0x9c
SQLSERVR! IndexDataSetSession::GetNextRowValuesInternal+0x11cb
Simptom 3
Kada primite poruke pomenute u prethodnim odeljcima sa simptomima, primićete sledeće poruke u evidenciji grešaka za SQL Server:
Napomena
13.12.2014. 08:04:53.37 Proces sa servera 0:0:0 (0x23c8) Izgleda da 0x000000002880C1A0 radnika ne popušta u programu Scheduler 23. Vreme kreiranja niti: 13062953007877. Approx Thread CPU Used: kernel KSNUMKS ms, korisnik KSNUMKS ms. Korišćenje procesa 0%. Sistem u stanju mirovanja 88%. Interval: 70013 ms.
2014-12-13 08:04:53.37 Serverski proces 0:0:0 (0x71d8) Izgleda da 0x000000002A8D21A0 radnika ne popušta u programu Scheduler 30. Vreme kreiranja niti: 13062953007891. Approx Thread CPU Used: kernel KSNUMKS ms, korisnik KSNUMKS ms. Korišćenje procesa 0%. Sistem u stanju mirovanja 88%. Interval: 70013 ms.
2014-12-13 08:04:53.38 Server ***Nije moguće dobiti kontekst niti za spid 0
2014-12-13 08:04:53.38 server * *******************************************************************************
2014-12-13 08:04:53.38 server *
13.12.2014. 08:04:53.38 Server * POČETAK STEKA DUMP:
13.12.2014. 08:04:53.38 Server * 13.12.2014. 08:04:53 SPID 29488
2014-12-13 08:04:53.38 server *
2014-12-13 08:04:53.38 Server * Non-yielding Scheduler
2014-12-13 08:04:53.38 server *
2014-12-13 08:04:53.38 server * *******************************************************************************
2014-12-13 08:04:53.38 Server Stack Signature for the dump is 0x0000000000000341
13.12.2014. 08:04:55.43 Server Spoljni proces dump povratnog koda 0x20000001. Proces spoljnog prikaza nije davao greške.
13.12.2014. 08:04:55.43 Serverski proces 0:0:0 (0x9358) Izgleda da 0x0000000081CE41A0 radnika ne popušta u programu Scheduler 4. Vreme kreiranja niti: 13062953009701. Approx Thread CPU Koristi: jezgro KSNUMKS ms, korisnik KSNUMKS ms. Korišćenje procesa 0%. Sistem u stanju mirovanja 88%. Interval: 70011 ms.
SQL Server u ovom trenutku možda ne reaguje na zahteve korisnika. Ako je to slučaj, morate ponovo da pokrenete uslugu da biste ispravili situaciju.
Uzrok
Do ovog problema dolazi zato što korisnički upiti pokušavaju da koriste redove duha čišćenja pre nego što se ovaj proces potpuno pokrene.
Rešenje
Informacije o servisnom paketu
Da biste rešili ovaj problem, nabavite servisni paket 1 za SQL Server 2014.
Više informacija o sistemu SQL Server 2014 servisni paket 1 (SP1) potražite u članku greške koje su ispravljene u sistemu SQL Server 2014 servisni paket 1.
Brza ispravka za SQL Server 2008 SP4
Da biste rešili ovaj problem, primenite KB 3034373: Paket hitnih ispravki na zahtev je dostupan za SQL Server 2008 SP4.
Hitna ispravka za SQL Server 2008 R2 SP3
Da biste rešili ovaj problem, primenite KB 3033860: Paket hitnih ispravki na zahtev je dostupan za SQL Server 2008 R2 SP3.
Informacije o kumulativnom ažuriranju
Poboljšanje funkcije je uvedeno u sledećoj kumulativnoj ispravci sistema SQL Server.
Kumulativna ispravka 6 za SQL Server 2014 /en-us/help/3031047
Kumulativna ispravka 4 za SQL Server 2012 SP2 /en-us/help/3007556
Kumulativna ispravka 14 za SQL Server 2012 SP1 /en-us/help/3023636
Osnovni podaci o kumulativnim ispravkama za SQL Server
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
- Najnovija kumulativna ispravka za SQL Server 2014
- Najnovija kumulativna ispravka za SQL Server 2012 SP2
- Najnovija kumulativna ispravka za SQL Server 2012 SP1
Privremeno rešenje
Da biste rešili ovaj problem, pratite ove korake:
- Konfigurišite -T669 kao parametar pokretanja. Ova zastavica praćenja sprečava korisničke upite da stave zahteve u red za proces ghost cleanup.
- Podesite obaveštenje SQL Server agenta da biste aktivirali zadatak u sistemu SQL Msg 3408. Na primer, podesite sledeće obaveštenje:
Oporavak je dovršen. Ovo je samo informativna poruka. Nije potrebna nikakva radnja korisnika. - Unutar ovog posla pokrenite TSQL skriptu da sačekate 5 do 10 minuta, a zatim pokrenite komandu DBCC TRACEOFF (669,-1).
Ova procedura obezbeđuje da ova zastavica za praćenje bude aktivna samo tokom pokretanja sistema SQL Server. Korišćenje ove zastavice za praćenje ne utiče na uobičajeno funkcionisanje procesa čišćenja duhova u pozadini.
Status
Microsoft je potvrdio da je ovo problem sa sistemom SQL Server i trenutno istražuje rešenje za ovaj problem. Ovaj članak u bazi znanja biće ažuriran dodatnim informacijama kada postane dostupan.
Reference
Unutar Storage Engine: Ghost čišćenje u dubini
Obaveštenja
sp_add_alert (Transact-SQL)
DBCC TRACEOFF (Transact-SQL)
Praćenje zastavica
Opcije pokretanja mašine baze podataka