SQL Server 시작 중 오류 17066 또는 17310

증상

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는 사용자 요청에 응답하지 않을 수 있습니다. 이러한 경우, 문제를 해결하려면 서비스를 다시 시작해야 합니다.

원인

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

SQL Server용 각각의 새로운 누적 업데이트는 모이전 누적 업데이트에 포함된 모든 핫픽스 및 보안 수정 프로그램을 포함합니다. SQL Server에 대한 최신 누적 업데이트를 확인해 보십시오.


해결 방법

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. 구성- 시작 매개변수로서의 -T669 이 추적 플래그는 요청 큐에서 고스트 정리 프로세스로 가는 사용자 큐를 방지합니다.

  2. SQL 메시지 3408에서 작업을 시작하려면 SQL Server 에이전트 경고를 설정합니다. 예를 들어, 다음과 같은 경고를 설정합니다.

    복구가 완료 되었습니다. 이것은 단지 정보 메시지 이므로 사용자 작업이 필요하지 않습니다.

  3. 이 작업 내부에서, TSQL 스크립트를 실행하여 5~10 분간 대기시키고 DBCC TRACEOFF (669, -1) 명령어를 실행합니다.

이렇게 하면 이 추적 플래그가 SQL Server 시작 중에만 활성화됩니다. 이 추적 플래그를 사용해도 배경 고스트 정리 프로세스의 평상시의 작동에 영향을 주지 않습니다.

상태

Microsoft는 이것이 SQL Server에서 문제임을 확인하였으며 현재 해당 문제 해결을 위해 연구중입니다. 이 기술 자료 문서를 사용할 수 있게 되면 추가 정보로 업데이트 됩니다.

참조

저장소 엔진 내부: 심층 고스트 정리

경고

sp_add_alert (Transact SQL)

DBCC TRACEOFF (거래 SQL)

추적 플래그

데이터베이스 엔진 시작 옵션

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×