Dépannage des erreurs de protocole lors du démarrage du moteur de base de données
Lorsque le Moteur de base de données SQL Server rencontre une erreur de protocole au démarrage, un message d'erreur est écrit dans le journal des erreurs SQL Server et dans le journal des événements Windows sous la forme suivante :
« Erreur : 17182, Gravité : 16, État : 1. » 1."
« Échec de l'initialisation TDSSNIClient avec l'erreur <x>, code d'état <y>. »
Dans ce message, <x> est le code d'erreur sous-jacent retourné par le sous-système de communication ou de sécurité et <y> est un état d'erreur de protocole SQL Server interne.
[!REMARQUE]
Le protocole de mémoire partagée et le protocole de canaux nommés partagent certains aspects de leur implémentation. L'échec d'un protocole peut entraîner l'échec de l'autre protocole. Si le protocole mentionné dans le message d'erreur est désactivé mais que l'erreur persiste, essayez de redémarrer avec les protocoles de mémoire partagée et de canaux nommés désactivés.
Interprétation du code d'erreur
Le code d'erreur sous-jacent <x> est en général un code d'erreur retourné par la couche réseau Windows ou par un appel SSPI (Security Support Provider Interface). Pour les codes d'erreur réseau Windows, l'exécution de la commande net helpmsg peut aider à interpréter le code. Les codes d'erreur SSPI ne sont pas si faciles à déchiffrer. Vous devrez peut-être effectuer des recherches dans la Base de connaissances (KB) Microsoft ou, si le Kit de développement logiciel (SDK) du système d'exploitation est installé, examiner le fichier WinError.h.
Interprétation du code d'état d'erreur de protocole
Les états d'erreur de protocole SQL Server sont répertoriés dans le tableau suivant. Notez que la plupart des états d'erreur indiquent une condition d'erreur interne, mais la valeur spécifique fournira des précisions sur la zone de protocole exacte concernée par l'erreur. Par exemple, si la valeur est comprise entre 7 et 30 (0x0A et 0x1E), l'erreur provient du traitement TCP/IP. Les codes d'état dans le message d'erreur sont présentés au format hexadécimal. Dans le tableau suivant, l'équivalent décimal est fourni par souci de clarté.
Plage de codes d'état au format hexadécimal |
Plage de codes d'état au format décimal |
Zone de protocole |
---|---|---|
0x03 |
3 |
Mémoire partagée |
0x07-0x1E |
7-30 |
TCP/IP |
0x1F-0x23 |
31-35 |
DAC (Dedicated Administrator Connection) |
0x35 |
53 |
Canaux nommés |
0x36 |
54 |
VIA (Virtual Interface Architecture) |
0x38 |
56 |
SSL (Secure Sockets Layer) |
0x40-0x4F |
64-79 |
Mémoire partagée |
0x50-0x5F |
80-95 |
Canaux nommés |
0x60-0x6F |
96-111 |
VIA |
0x70-0x7F |
112-127 |
HTTP |
0x80-0x8F |
128-143 |
SSL |
0x90-0x9F |
144-159 |
Général |
Le tableau suivant énumère certains codes d'erreur courants.
Code d'état |
Description |
---|---|
0x03 |
Erreur lors du démarrage de la prise en charge de la mémoire partagée |
0x04 |
Tous les protocoles désactivés |
0x0A |
Impossible d'initialiser l'écouteur TCP/IP |
0x1C |
Serveur configuré pour écouter sur une adresse IP spécifique dans un environnement de cluster |
0x1E |
Adresse IP dupliquée détectée sur le réseau |
0x35 |
Erreur lors du démarrage de la prise en charge des canaux nommés |
0x36 |
Erreur lors du démarrage de la prise en charge VIA |
0x38 |
Erreur lors de l'obtention ou de l'utilisation du certificat pour le protocole SSL |
0x3A |
Impossible d'initialiser les écouteurs de communication |
0x40 |
Impossible d'initialiser l'écouteur de mémoire partagée |
0x50 |
Impossible d'initialiser l'écouteur de canaux nommés |
0x60 |
Impossible d'initialiser l'écouteur VIA |
0x70 |
Impossible d'initialiser l'écouteur HTTP |
0x80 |
Impossible d'initialiser la prise en charge du protocole SSL |
Exemples
Voici un exemple d'erreur typique qui se produit au démarrage : « Échec de l'initialisation TDSSNIClient avec l'erreur 0x80092004, code d'état 0x38. »
La valeur 0x80092004 est un code d'erreur SSPI qui se traduit en CRYPT_E_NOT_FOUND. 0x38 est un code d'erreur interne qui signifie que la couche de communication SQL Server n'a pas pu initialiser l'écouteur. Cette erreur a été générée par le protocole SSL, car le certificat était introuvable.
Erreurs retournées lorsque tous les protocoles sont désactivés
Vous pouvez recevoir les erreurs suivantes lorsque tous les protocoles sont désactivés :
« Erreur : 17182, Gravité : 16, État : 1."
« Échec de l'initialisation TDSSNIClient avec l'erreur 0xd, code d'état 0x4. »
« Erreur : 17182, Gravité : 16, État : 1."
« Échec de l'initialisation TDSSNIClient avec l'erreur 0xd, code d'état 0x1. »
« Erreur : 17826, Gravité : 18, État : 3."
« Impossible de démarrer la bibliothèque réseau en raison d'une erreur interne dans celle-ci. Pour déterminer la cause, consultez les erreurs qui précèdent immédiatement celle-ci dans le journal des erreurs. »
« Erreur : 17120, Gravité : 16, État : 1."
« SQL Server n'a pas pu générer dynamiquement le thread FRunCM. Vérifiez le journal des erreurs de SQL Server et les journaux d'événements Windows pour plus d'informations sur des problèmes connexes éventuels. »