Příznaky
Při spuštění Microsoft SQL serveru se po dokončení obnovení databáze projeví některé z následujících příznaků a připojení klientů je povoleno.
Příznak 1
V protokolu chyb SQL serveru se zobrazují chybové zprávy a kontrolní výrazy podobné následujícím:
2014-12-13 08:03:34.85 spid24s Using 'dbghelp.dll' version '4.0.5'2014-12-13 08:03:34.85 spid24s **Dump thread - spid = 0, EC = 0x0000000082274B202014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt2014-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 242014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:34.85 spid24s * Location: ghost.cpp:17422014-12-13 08:03:34.85 spid24s * Expression: tcln1 != NULL2014-12-13 08:03:34.85 spid24s * SPID: 242014-12-13 08:03:34.85 spid24s * Process ID: 354442014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:35.47 spid24s Error: 17066, Severity: 16, State: 1.2014-12-13 08:03:35.47 spid24s SQL Server Assertion: File: <ghost.cpp>, line=1742 Failed Assertion = 'tcln1 != NULL'. K této chybě mohlo dojít při časování. Pokud chyba přetrvává i po novém spuštění příkazu, pomocí příkazu DBCC CHECKDB zkontrolujte, jestli databáze není strukturovaná, nebo restartujte server, aby nedošlo k poškození datových struktur v paměti.
Příznak 2
V protokolu chyb SQL serveru se zobrazují chybové zprávy a výjimky:
2014-12-13:38:30.25 spid51 s použitím ' dbghelp. dll ' verze ' 4.0.5 "2014-12-13 12:38:30.25 spid51 * * * je zaslaný výpis zásobníku na C:\Program Files\Microsoft SQL Server \ MSSQL10_50. SQL2008R2\MSSQL\LOG\SQLDump0003.txt2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: proces 51 vygeneroval závažnou výjimku c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.2014-12-13 12:38:30.25 spid51 * *******************************************************************************2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * BEGIN STACK DUMP:2014-12-13 12:38:30.25 spid51 * 12/13/14 12:38:30 spid 512014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * Exception Address = 000000000030D47C Module(sqlservr+00000000000FD47C)2014-12-13 12:38:30.25 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION2014-12-13 12:38:30.25 spid51 * Access Violation occurred reading address FFFFFFFFFFFFFFFF2014-12-13 12:38:30.25 spid51 * Input Buffer 54 bytes -2014-12-13 12:38:30.25 spid51 * exec usp_select12014-12-13 12:38:30.77 Server Error: 17310, Severity: 20, State: 1.2014-12-13 12:38:30.77 Server A user request from the session with SPID 51 generated a fatal exception. SQL Server ukončí tuto relaci. Kontaktování služeb technické podpory s výpisem vytvořeným v adresáři log. Porušení přístupu bude mít následující zásobník volání: Sqlservr! TaskGhostCleanup:: SHA + 0x8dsqlservr! TaskGhostCleanup:: fronty a 0x32sqlservr! IndexRowScanner:: MoveToRowOnNextPage + 0x9csqlservr! IndexDataSetSession:: GetNextRowValuesInternal + 0x11cb
Příznak 3
Po přijetí zpráv uvedených v předchozích oddílech příznaků se v protokolu chyb SQL serveru zobrazují tyto zprávy:
2014-12-13 8:04:53.37 Server proces 0:0:0 (0x23c8) pracovník 0x000000002880C1A0 zřejmě není v Plánovači 23. Čas vytvoření vlákna: 13062953007877. Využití procesoru na přibližně: jádro 0 MS, uživatel 0 MS. Využití procesu 0%. Systém nepracuje 88%. Interval: 70013 MS. 2014 – 12 – 13 08:04:53.37 Server proces 0:0:0 (0x71d8) pracovní 0x000000002A8D21A0 zřejmě není v Plánovači 30. Čas vytvoření vlákna: 13062953007891. Využití procesoru na přibližně: jádro 0 MS, uživatel 0 MS. Využití procesu 0%. Systém nepracuje 88%. Interval: 70013 ms.2014-12-13 08:04:53.38 Server ***Unable to get thread context for spid 02014-12-13 08:04:53.38 Server * *******************************************************************************2014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * BEGIN STACK DUMP:2014-12-13 08:04:53.38 Server * 12/13/14 08:04:53 spid 294882014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * Non-yielding Scheduler2014-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 0x00000000000003412014-12-13 08:04:55.43 Server External dump process return code 0x20000001. Proces externího výpisu vrátil žádné chyby. 2014 – 12 – 13 08:04:55.43 serveru Process 0:0:0 (0x9358) se zdá, že v Plánovači 4 je neproduktivní. Čas vytvoření vlákna: 13062953009701. Využití procesoru na přibližně: jádro 0 MS, uživatel 15 MS. Využití procesu 0%. Systém nepracuje 88%. Interval: 70011 MS.
SQL Server nemusí v tomto okamžiku odpovídat na žádosti uživatele. V takovém případě musíte službu restartovat, aby se situace opravila.
Příčina
K tomuto problému dochází, protože dotazy uživatelů se pokusí použít fronty čištění před úplným spuštěním tohoto procesu.
Řešení
Informace o aktualizaci Service Pack
Tento problém vyřešíte aktualizací Service Pack 1 pro SQL Server 2014.
Další informace o aktualizaci SQL Server 2014 Service Pack 1 (SP1) najdete v článku chyby opravené v aktualizaci SQL server 2014 Service Pack 1.
Oprava hotfix pro SQL Server 2008 SP4
Tento problém vyřešíte instalací KB 3034373: balíček aktualizace oprav hotfix na vyžádání je k dispozici pro SQL Server 2008 SP4.
Oprava hotfix pro SQL Server 2008 R2 SP3
Tento problém vyřešíte instalací KB 3033860: balíček aktualizace oprav hotfix na vyžádání je k dispozici pro SQL Server 2008 R2 SP3.
Informace o kumulativní aktualizaci
Vylepšení funkcí bylo představeno v následující kumulativní aktualizaci SQL serveru.
Kumulativní aktualizace 6 pro SQL Server 2014 /en-us/help/3031047
Kumulativní aktualizace 4 pro SQL Server 2012 SP2 /en-us/help/3007556
Kumulativní aktualizace 14 pro SQL Server 2012 SP1 /en-us/help/3023636
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:
Alternativní řešení
Tento problém vyřešíte takto:
-
Configure -T669 as Startup. Tyto příznaky trasování brání uživatelům v žádosti o frontování v procesu vyřazování zástupných položek.
-
Nastavení výstrahy SQL serveru Agent pro aktivaci úlohy na SQL MSG 3408 Nastavte třeba následující upozornění:
Obnovení je dokončeno. Tato zpráva je jenom informační. Není třeba žádné akce uživatele.
-
V této úloze spusťte skript TSQL, který počká 5 až 10 minut a potom spusťte příkaz DBCC TRACEOFF (669,-1) .
Tímto postupem zajistíte, aby byl tento příznak trasování aktivní jenom při spuštění systému SQL Server. Použití tohoto příznaku trasování nemá vliv na obvyklé fungování procesu čištění Ghost.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém s SQL serverem a v současné době řeší opravu tohoto problému. Tento článek znalostní báze Knowledge Base bude aktualizován o další informace, které budou k dispozici.
Odkazy
V jádru úložiště se zobrazuje upozornění na skryté čištění sp_add_alert (Transact-SQL) příkaz DBCC TRACEOFF (Transact-SQL)Flags–Možnosti spuštění databázového stroje