Problembehandlung von Protokollfehlern beim Starten des Datenbankmoduls

Wenn beim Starten von SQL Server Database Engine (Datenbankmodul) ein protokollbezogener Fehler auftritt, wird in das SQL Server-Fehlerprotokoll und das Windows-Ereignisprotokoll eine Fehlermeldung in der folgenden Form geschrieben:

"Fehler: 17182, Schweregrad: 16, Status: 1."

"Fehler bei der TDSSNIClient-Initialisierung. Fehler <x>, Statuscode <y>."

In dieser Meldung ist <x> der zugrunde liegende Fehlercode, der vom Kommunikations- oder Sicherheitssubsystem zurückgegeben wird, während <y> ein interner SQL Server-Protokollfehlerzustand ist.

HinweisHinweis

Das Shared Memory-Protokoll und das Named Pipes-Protokoll weisen in Bezug auf ihre Implementierung einige gemeinsame Aspekte auf. Fällt ein Protokoll aus, bewirkt dies u. U. auch bei dem anderen Protokoll einen Fehler. Wenn das in der Fehlermeldung angegebene Protokoll deaktiviert wird, der Fehler aber weiterhin auftritt, versuchen Sie einen Neustart auszuführen, bei dem sowohl das Shared Memory-Protokoll als auch das Named Pipes-Protokoll deaktiviert ist.

Interpretieren des Fehlercodes

Der zugrunde liegende Fehlercode <x> ist in der Regel ein Fehlercode, der von der Windows-Vermittlungsschicht oder von einem SSPI-Aufruf (Security Support Provider Interface) zurückgegeben wird. Bei Windows-Netzwerkfehlercodes empfiehlt es sich, zur Interpretierung des Codes den Befehl net helpmsg auszuführen. SSPI-Fehlercodes sind nicht so einfach zu entschlüsseln. Möglicherweise müssen Sie die Microsoft Knowledge Base durchsuchen oder, wenn das Betriebssystem-SDK installiert ist, die Datei WinError.h untersuchen.

Interpretieren des Protokoll-Fehlerzustandscodes

Die Protokoll-Fehlerzustandscodes von SQL Server sind in der folgenden Tabelle aufgelistet. Beachten Sie, dass die meisten Fehlerzustand auf eine interne Fehlerbedingung hinweisen. Anhand des spezifischen Wertes kann jedoch ermittelt werden, welchem Protokollbereich der Fehler zuzuordnen ist. Wenn z. B. ein Wert zwischen 7 und 30 (0x0A und 0x1E) angegeben wird, stammt der Fehler aus der TCP/IP-Verarbeitung. Statuscodes in der Fehlermeldung werden im Hexadezimalformat angegeben. Zur Verdeutlichung wird in der folgenden Tabelle auch die Entsprechung im Dezimalformat angegeben.

Statuscodebereich im Hexadezimalformat

Statuscodebereich im Dezimalformat

Protokollbereich

0x03

3

Shared Memory

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

Dedizierte Administratorverbindung (DAC)

0x35

53

Named Pipes

0x36

54

Virtual Interface Architecture (VIA)

0x38

56

Secure Sockets Layer (SSL)

0x40-0x4F

64-79

Shared Memory

0x50-0x5F

80-95

Named Pipes

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

Allgemein

In der folgenden Tabelle werden einige häufige Fehlercodes aufgelistet.

Statuscode

Beschreibung

0x03

Fehler beim Starten der Shared Memory-Unterstützung

0x04

Alle Protokolle sind deaktiviert

0x0A

Die TCP/IP-Überwachung kann nicht initialisiert werden

0x1C

Der Server ist für die Überwachung einer bestimmten IP-Adresse in einer Clusterumgebung konfiguriert

0x1E

Im Netzwerk wurde eine doppelte IP-Adresse festgestellt

0x35

Fehler beim Starten der Named Pipe-Unterstützung

0x36

Fehler beim Starten der VIA-Unterstützung

0x38

Fehler beim Abrufen oder Verwenden des SSL-Zertifikats

0x3A

Die Kommunikationsüberwachungen können nicht initialisiert werden

0x40

Die Shared Memory-Überwachung kann nicht initialisiert werden

0x50

Die Named Pipe-Überwachung kann nicht initialisiert werden

0x60

Die VIA-Überwachung kann nicht initialisiert werden

0x70

Die HTTP-Überwachung kann nicht initialisiert werden

0x80

Die SSL-Unterstützung kann nicht initialisiert werden

Beispiele

Beispiel eines typischen, beim Starten auftretenden Fehlers: "Fehler bei der TDSSNIClient-Initialisierung. Fehler 0x80092004, Statuscode 0x38."

Der Wert 0x80092004 ist ein SSPI-Fehlercode mit der Bedeutung CRYPT_E_NOT_FOUND. 0x38 ist ein interner Fehlercode, der angibt, dass die SQL Server-Kommunikationsschicht die Überwachung nicht initialisieren konnte. Dieser Fehler wurde von SSL generiert, da das Zertifikat nicht gefunden wurde.

Fehler, die zurückgegeben werden, wenn alle Protokolle deaktiviert sind

Wenn alle Protokolle deaktiviert sind, erhalten Sie u. U. die folgenden Fehler:

  • "Fehler: 17182, Schweregrad: 16, Status: 1."

    "Fehler bei der TDSSNIClient-Initialisierung. Fehler 0xd, Statuscode 0x4."

  • "Fehler: 17182, Schweregrad: 16, Status: 1."

    "Fehler bei der TDSSNIClient-Initialisierung. Fehler 0xd, Statuscode 0x1."

  • "Fehler: 17826, Schweregrad: 18, Status: 3."

    "Aufgrund eines internen Fehlers in einer Netzwerkbibliothek konnte die Netzwerkbibliothek nicht gestartet werden. Überprüfen Sie zum Bestimmen der Ursache die diesem Fehler unmittelbar vorhergehenden Fehler im Fehlerprotokoll."

  • "Fehler: 17120, Schweregrad: 16, Status: 1."

    "SQL Server konnte den Thread FRunCM nicht erzeugen. Suchen Sie im SQL Server-Fehlerprotokoll und in den Windows-Ereignisprotokollen nach Informationen zu möglichen verwandten Problemen."