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.
Hinweis |
---|
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."