Greška 17066 ili 17310 tokom pokretanja sistema SQL Server

Primenjuje se na
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Express Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Express Edition

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:

      

Privremeno rešenje

Da biste rešili ovaj problem, pratite ove korake:

  1. Konfigurišite -T669 kao parametar pokretanja. Ova zastavica praćenja sprečava korisničke upite da stave zahteve u red za proces ghost cleanup.
  2. 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.
  3. 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