Applies ToSQL 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

증상

Microsoft SQL Server를 시작 하는 동안 데이터베이스 복구를 완료 하 고 클라이언트 연결을 사용할 수 있게 되 면 다음 중 하나 이상의 증상을 볼 수 있습니다.

현상 1

SQL Server 오류 로그에 다음과 유사한 오류 메시지와 어설션이 표시 됩니다.

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'. 이 오류는 타이밍과 관련 된 것일 수 있습니다. 문을 다시 실행 한 후에도 오류가 계속 발생 하는 경우 DBCC CHECKDB를 사용 하 여 데이터베이스의 구조적 무결성을 확인 하거나 서버를 다시 시작 하 여 메모리 내 데이터 구조가 손상 되지 않았는지 확인 합니다.

현상 2

SQL Server 오류 로그에 다음과 유사한 오류 메시지 및 예외가 표시 됩니다.

2014-12-13 12:38: ' dbghelp ' 버전 ' 4.0.5 ' 2014를 사용 하는 30.25 spid51-12-13 12:38:30.25 spid51 * * * C:\Program Files\Microsoft SQL Server \ MSSQL10_50에 대 한 스택 덤프가 있습니다. SQL2008R2\MSSQL\LOG\SQLDump0003.txt2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: 프로세스 51에서 치명적인 예외 EXCEPTION_ACCESS_VIOLATION c0000005를 생성 했습니다. 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가이 세션을 종료 합니다. 로그 디렉터리에 생성 된 덤프를 사용 하 여 기술 지원 서비스에 문의 합니다. 액세스 위반은 ' sqlservr.exe! '와 같은 호출 스택이 됩니다. TaskGhostCleanup:: IsHashed + 0x8dsqlservr! TaskGhostCleanup:: 큐 + 0x32sqlservr! IndexRowScanner:: MoveToRowOnNextPage + 0x9csqlservr! IndexDataSetSession:: GetNextRowValuesInternal + 0x11cb

증상 3

이전 현상 섹션에서 설명한 메시지를 받으면 SQL Server 오류 로그에 다음 메시지가 표시 됩니다.

2014-12-13 08:04:53.37 Server Process 0:0:0 (0x23c8) 작업자 0x000000002880C1A0는 스케줄러 23에서 생성 되지 않는 것으로 표시 됩니다. 스레드 생성 시간: 13062953007877. 대략적인 스레드 CPU 사용: 커널 0 밀리초, 사용자 0 밀리초. 프로세스 사용률 0%. 시스템 유휴 88%. 간격: 70013-2014 년 12 월 11 일: 04:53.37 Server Process 0:0:0 (0x71d8) Worker 0x000000002A8D21A0는 스케줄러 30에서 생성 되지 않는 것으로 표시 됩니다. 스레드 생성 시간: 13062953007891. 대략적인 스레드 CPU 사용: 커널 0 밀리초, 사용자 0 밀리초. 프로세스 사용률 0%. 시스템 유휴 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. 외부 덤프 프로세스가 오류를 반환 했습니다. 2014-12-13 08:04:55.43 Server Process 0:0:0 (0x9358) Worker 0x0000000081CE41A0이 스케줄러 4에서 생성 되지 않는 것으로 나타납니다. 스레드 생성 시간: 13062953009701. 대략적인 스레드 CPU 사용: 커널 0 밀리초, 사용자 15 밀리초. 프로세스 사용률 0%. 시스템 유휴 88%. 간격: 70011 밀리초.

이 시점에서 SQL Server가 사용자 요청에 응답 하지 않을 수 있습니다. 이 경우에는 서비스를 다시 시작 해야 문제를 해결할 수 있습니다.

원인

이 문제는이 프로세스가 완전히 초기화 되기 전에 사용자 쿼리에서 고스트 정리 대기열을 사용 하려고 할 때 발생 합니다.

각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.

해결 방법

이 문제를 해결 하려면 다음 단계를 따르세요.

  1. T669 를 시작 매개 변수로 구성 합니다. 이 추적 플래그는 사용자 쿼리가 고스트 정리 프로세스에 대 한 요청을 대기 시키는 것을 방지 합니다.

  2. Sql Server 에이전트 알림을 설정 하 여 SQL 메시지 3408에 대 한 작업을 트리거합니다. 예를 들어 다음과 같은 알림을 설정 합니다.

    복구를 완료 했습니다. 이 메시지는 정보 제공 용입니다. 사용자 작업은 필요 하지 않습니다.

  3. 이 작업 내에서 TSQL 스크립트를 실행 하 여 5 ~ 10 분 동안 기다린 다음 DBCC TRACEOFF (669,-1) 명령을 실행 합니다.

이 절차에서는 SQL Server를 시작 하는 동안에만이 추적 플래그가 활성 상태 인지 확인 합니다. 이 추적 플래그를 사용 하면 백그라운드 고스트 정리 프로세스의 일반적인 작동에 영향을 주지 않습니다.

상태

Microsoft는이 문제가 SQL Server에 대 한 문제 이며 현재이 문제에 대 한 해결 방법을 조사 하 고 있음을 확인 했습니다. 이 기술 자료 문서는 사용할 수 있게 되는 추가 정보로 업데이트 됩니다.

참조

저장소 엔진 내: 자세한 경고 sp_add_alert 고스트 정리 (transact-sql) DBCC TRACEOFF (transact-sql)추적 플래그데이터베이스 엔진 시작 옵션

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.