증상
Microsoft SQL Server 시작중, 데이터베이스 복구가 완료되고 클라이언트 연결을 사용으로 설정된 후 다음과 같은 현상 중 하나 이상이 발생합니다.
현상 1
SQL Server 오류 로그에 다음과 유사한 어설션 및 오류 메시지가 나타납니다.
2014-12-13 08:03:34.85 spid24s 사용 하 여 'dbghelp.dll' 버전 '4.0.5'
2014-12-13 08:03:34.85 spid24s * * 스레드-spid 덤프 = 0, EC = 0x0000000082274B20
2014-12-13 08:03:34.85 spid24s * * * C:\Program 서식 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 * 시작 스택 덤프:
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 * 위치: ghost.cpp:1742
2014-12-13 08:03:34.85 spid24s * 식: tcln1! = NULL
2014-12-13 08:03:34.85 spid24s * SPID: 24
2014-12-13 08:03:34.85 spid24s * 프로세스 ID: 35444
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:35.47 spid24s 오류: 17066, 심각도: 16, 상태: 1.
2014-12-13 08:03:35.47 spid24s SQL Server 어설션: 파일: < ghost.cpp > 선 1742 실패 어설션 = = ' tcln1! = NULL'. 이 오류는 타이밍과 관련될 수 있습니다. 다음 문을 다시 실행한 후 오류가 계속 발생하는 경우 DBCC CHECKDB를 사용하여 데이터 베이스의 구조적 무결성을 검사하거나 서버를 다시 시작하여 메모리 데이터 구조가 손상되지 않았는지 확인합니다.
현상 2
오류 메시지 및 SQL Server 오류 로그에 다음과 유사한 예외가 나타납니다.
2014-12-13 12:38:30.25 spid51 Using 'dbghelp.dll' 버전 '4.0.5'
2014-12-13 12:38:30.25 spid51 * C:\Program 서식 SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0003.txt에 전송 되는 스택 덤프
2014-12-13 12:38:30.25 SqlDumpExceptionHandler spid51: 치명적인 예외를 생성 하는 프로세스 51 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 * 시작 스택 덤프:
2014-12-13 12:38:30.25 spid51 * 14/12/13 12시 38분: 30 spid 51
2014-12-13 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 * 예외 주소 = 000000000030D47C Module(sqlservr+00000000000FD47C)
2014-12-13 12:38:30.25 spid51 * 예외 코드 c0000005 EXCEPTION_ACCESS_VIOLATION =
2014-12-13 12:38:30.25 spid51 * 액세스 위반이 읽기 주소 FFFFFFFFFFFFFFFF 오류가 발생 했습니다.
2014-12-13 12:38:30.25 spid51 * 바이트 입력 버퍼 54-
2014-12-13 12:38:30.25 spid51 * exec usp_select1
2014-12-13 12:38:30.77 서버 오류: 17310, 심각도: 20, 상태: 1.
2014-12-13 12:38:30.77 서버 A 사용자 요청에서 SPID 51을 사용 하 여 세션에 치명적인 예외가 발생합니다. SQL Server가 이 세션을 종료하고 있습니다. 기술 지원 서비스에 연락하고 로그 디렉터리에 생성된 덤프를 전송해 주십시오.
액세스 위반은 다음과 같은 호출 스택을 갖습니다.
sqlservr!TaskGhostCleanup::IsHashed+0x8d
sqlservr!TaskGhostCleanup::Enqueue+0x32
sqlservr!IndexRowScanner::MoveToRowOnNextPage+0x9c
sqlservr!IndexDataSetSession::GetNextRowValuesInternal+0x11cb
증상 3
이전 현상 절에서 설명하는 메시지를 받은 후 SQL Server 오류 로그에 다음과 같은 메시지가 나타납니다.
2014-12-13 08:04:53.37 서버 프로세스 0:0:0 (0x23c8) 작업자 0x000000002880C1A0 23 스케줄러에 응답 하지 않는 것 같습니다. Thread creation time: 13062953007877. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 88% Interval: 70013 ms.
2014-12-13 08:04:53.37 서버 프로세스 0:0:0 (0x71d8) 작업자 0x000000002A8D21A0 30 스케줄러에 응답 하지 않는 것 같습니다. 스레드 생성 시간: 13062953007891. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 88% Interval: 70013 ms.
2014-12-13 08:04:53.38 서버 * * * spid 0 스레드 컨텍스트를 가져올 수 없음
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 서버 *
2014-12-13 08:04:53.38 서버 * 시작 스택 덤프:
2014-12-13 08:04:53.38 서버 * 12/13/14 08시 04분: 53 spid 29488
2014-12-13 08:04:53.38 서버 *
2014-12-13 08:04:53.38 서버 * 응답 하지 않는 스케줄러
2014-12-13 08:04:53.38 서버 *
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 서버 스택 서명 덤프에 대 한 0x0000000000000341가
2014-12-13 08:04:55.43 서버 외부 덤프 프로세스 반환 코드 0x20000001. 외부 덤프 프로세스 없음 오류를 반환 했습니다.
2014-12-13 08:04:55.43 서버 프로세스 0:0:0 (0x9358) 작업자 0x0000000081CE41A0 4 스케줄러 응답 하지 않는 것 같습니다. 스레드 생성 시간: 13062953009701. 약 스레드 CPU 사용 된: 커널 0 ms 사용자 15 ms. 프로세스 사용률이 0%. System Idle 88% 간격: 70011 ms입니다.
이 시점에서 SQL Server는 사용자 요청에 응답하지 않을 수 있습니다. 이러한 경우, 문제를 해결하려면 서비스를 다시 시작해야 합니다.
원인
이 문제는, 이 프로세스가 완전히 초기화 되기전에, 사용자 쿼리가 고스트 정리 큐를 사용하려고 하기 때문에 발생합니다.
해결 방법
서비스 팩 정보
이 문제를 해결하려면 서비스 팩 1 SQL Server 2014를 사용합니다.
SQL Server 2014 서비스 팩 1 (SP1)에 대 한 자세한 내용은 SQL Server 2014 서비스 팩 1에서 해결 하는 버그를 참조 하십시오.
SQL Server 2008 SP4용 핫픽스
이 문제를 해결 하려면 적용 KB 3034373: 필요 시 핫픽스 업데이트 패키지는 SQL Server 2008 s p 4에 사용할 수 있는.
SQL Server 2008 R2 SP3용 핫픽스
이 문제를 해결 하려면 적용 KB 3033860: 필요 시 핫픽스 업데이트 패키지는 SQL Server 2008 R2 s p 3에 사용할 수 있는.
누적 업데이트 정보
기능 향상은 SQL Server의 다음 누적 업데이트에서 도입 되었습니다.
SQL Server 2014용 누적 업데이트 6/en-us/help/3031047
SQL Server 2012 SP2용 누적 업데이트 4/en-us/help/3007556
SQL Server 2012 SP1용 누적 업데이트 14/en-us/help/3023636
SQL Server용 누적 업데이트에 대해
SQL Server용 각각의 새로운 누적 업데이트는 모이전 누적 업데이트에 포함된 모든 핫픽스 및 보안 수정 프로그램을 포함합니다. SQL Server에 대한 최신 누적 업데이트를 확인해 보십시오.
해결 방법
이 문제를 해결하려면 다음 단계를 수행합니다.
-
구성- 시작 매개변수로서의 -T669 이 추적 플래그는 요청 큐에서 고스트 정리 프로세스로 가는 사용자 큐를 방지합니다.
-
SQL 메시지 3408에서 작업을 시작하려면 SQL Server 에이전트 경고를 설정합니다. 예를 들어, 다음과 같은 경고를 설정합니다.
복구가 완료 되었습니다. 이것은 단지 정보 메시지 이므로 사용자 작업이 필요하지 않습니다.
-
이 작업 내부에서, TSQL 스크립트를 실행하여 5~10 분간 대기시키고 DBCC TRACEOFF (669, -1) 명령어를 실행합니다.
이렇게 하면 이 추적 플래그가 SQL Server 시작 중에만 활성화됩니다. 이 추적 플래그를 사용해도 배경 고스트 정리 프로세스의 평상시의 작동에 영향을 주지 않습니다.
상태
Microsoft는 이것이 SQL Server에서 문제임을 확인하였으며 현재 해당 문제 해결을 위해 연구중입니다. 이 기술 자료 문서를 사용할 수 있게 되면 추가 정보로 업데이트 됩니다.
참조
저장소 엔진 내부: 심층 고스트 정리
경고
sp_add_alert (Transact SQL)
DBCC TRACEOFF (거래 SQL)
추적 플래그
데이터베이스 엔진 시작 옵션