데이터베이스 엔진 시작 시 프로토콜 오류 문제 해결

SQL Server 데이터베이스 엔진에서 시작 시 프로토콜 관련 오류가 발생할 경우 SQL Server 오류 로그와 Windows 이벤트 로그에 다음과 같은 형식으로 오류 메시지가 기록됩니다.

"오류: 17182, 심각도: 16, 상태: 1."

"오류 <x>, 상태 코드 <y>(으)로 인해 TDSSNIClient 초기화에 실패했습니다."

이 메시지에서 <x>는 통신 또는 보안 하위 시스템에서 반환된 기본 오류 코드이고 <y>는 내부 SQL Server 프로토콜 오류 상태입니다.

[!참고]

공유 메모리 프로토콜과 명명된 파이프 프로토콜은 구현의 일부분을 공유합니다. 한 프로토콜이 실패하면 다른 프로토콜도 실패할 수 있습니다. 오류 메시지에 표시된 프로토콜을 해제해도 오류가 계속될 경우 공유 메모리와 명명된 파이프를 모두 해제하고 다시 시작해 보십시오.

오류 코드 해석

기본 오류 코드인 <x>는 일반적으로 Windows 네트워크 계층이나 SSPI(보안 지원 공급자 인터페이스) 호출에서 반환된 오류 코드입니다. Windows 네트워크 오류 코드의 경우 net helpmsg 명령을 실행하면 코드 해석에 도움이 될 수 있습니다. SSPI 오류 코드는 해석하기가 쉽지 않습니다. Microsoft 기술 자료를 검색하거나 운영 체제 SDK가 설치되어 있는 경우 WinError.h 파일을 검사해야 할 수도 있습니다.

프로토콜 오류 상태 코드 해석

SQL Server 프로토콜 오류 상태는 다음 표에 나열되어 있습니다. 오류 상태는 대부분 내부 오류 조건을 나타내지만 특정 값은 오류가 속하는 특정 프로토콜 영역에 관한 정보를 제공합니다. 예를 들어 값이 7에서 30(0x0A에서 0x1E) 사이에 있을 경우 해당 오류는 TCP/IP 처리에서 발생한 것입니다. 오류 메시지의 상태 코드는 16진수 형식으로 표시됩니다. 다음 표에서는 구분을 위해 해당 10진수를 제공합니다.

16진수 형식의 상태 코드 범위

10진수 형식의 상태 코드 범위

프로토콜 영역

0x03

3

공유 메모리

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

DAC(관리자 전용 연결)

0x35

53

명명된 파이프

0x36

54

VIA(Virtual Interface Adapter)

0x38

56

SSL(Secure Sockets Layer)

0x40-0x4F

64-79

공유 메모리

0x50-0x5F

80-95

명명된 파이프

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

일반

다음 표에서는 일반 오류 코드를 나열합니다.

상태 코드

설명

0x03

공유 메모리 지원 시작 시 오류가 발생했습니다.

0x04

모든 프로토콜이 해제되어 있습니다.

0x0A

TCP/IP 수신기를 초기화할 수 없습니다.

0x1C

서버가 클러스터 환경의 특정 IP 주소에서 수신하도록 구성되어 있습니다.

0x1E

네트워크에서 중복 IP 주소가 검색됩니다.

0x35

명명된 파이프 지원 시작 시 오류가 발생했습니다.

0x36

VIA 지원 시작 시 오류가 발생했습니다.

0x38

SSL에 대한 인증서 가져오기 또는 사용 시 오류가 발생했습니다.

0x3A

통신 수신기를 초기화할 수 없습니다.

0x40

공유 메모리 수신기를 초기화할 수 없습니다.

0x50

명명된 파이프 수신기를 초기화할 수 없습니다.

0x60

VIA 수신기를 초기화할 수 없습니다.

0x70

HTTP 수신기를 초기화할 수 없습니다.

0x80

SSL 지원을 초기화할 수 없습니다.

다음은 시작 중에 발생하는 일반 오류의 예입니다. "오류 0x80092004, 상태 코드 0x38(으)로 인해 TDSSNIClient 초기화에 실패했습니다."

값 0x80092004는 CRYPT_E_NOT_FOUND로 변환되는 SSPI 오류 코드입니다. 0x38은 SQL Server 통신 계층에서 수신기를 초기화할 수 없음을 나타내는 내부 오류 코드입니다. 이 오류는 SSL에서 인증서를 찾을 수 없어 생성한 것입니다.

모든 프로토콜이 해제된 경우 반환되는 오류

모든 프로토콜이 해제되어 있으면 다음 오류가 표시될 수 있습니다.

  • "오류: 17182, 심각도: 16, 상태: 1."

    "오류 0xd, 상태 코드 0x4(으)로 인해 TDSSNIClient 초기화에 실패했습니다."

  • "오류: 17182, 심각도: 16, 상태: 1."

    "오류 0xd, 상태 코드 0x1(으)로 인해 TDSSNIClient 초기화에 실패했습니다."

  • "오류: 17826, 심각도: 18, 상태: 3."

    "네트워크 라이브러리에 내부 오류가 있으므로 네트워크 라이브러리를 시작할 수 없습니다. 원인을 파악하려면 오류 로그에서 이 오류 바로 앞에 나오는 오류를 검토하십시오."

  • "오류: 17120, 심각도: 16, 상태: 1."

    "SQL Server에서 FRunCM 스레드를 생성할 수 없습니다. SQL Server 오류 로그 및 Windows 이벤트 로그에서 가능한 관련 문제에 대한 내용을 확인하십시오."