Partager via


Le service SQL Server et le service SQL Server Agent ne parviennent pas à démarrer sur un serveur autonome

Cet article vous aide à résoudre les problèmes où le service SQL Server et le service SQL Server Agent peuvent ne pas démarrer sur un serveur autonome.

Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 307288

Symptômes

  • Problème 1 : Sur un serveur autonome, le service MSSQLSERVER peut échouer et vous recevez le message d’erreur suivant :

    An error 1068 - (The dependency service or group failed to start.) occurred while performing this service operation on the MSSQLServer Service.
    
  • Problème 2 : De même, le service SQLServerAgent peut également échouer et vous recevez le message d’erreur suivant :

    An error 1068 - (The dependency service or group failed to start.) occurred while performing this service operation on the SQLServerAgent Service.
    

    Le problème 1 et le problème 2 se produisent lorsque les deux conditions suivantes sont remplies :

    • L’ordinateur serveur se trouve dans un groupe de travail et ne fait pas partie d’un domaine.
    • Les services MSSQLSERVER et SQLServerAgent sont définis pour utiliser un compte de domaine pour le démarrage.
  • Problème 3 : Sur un serveur membre de domaine, le service MSSQLSERVER peut ne pas démarrer pendant le démarrage du serveur et vous recevez le message suivant dans l’Observateur d’événements avec l’ID d’événement 7038 :

    The MSSQLSERVER service was unable to log on as domain\mssqlsvc with the currently configured password due to the following error: Source: NetLogon Description: There are currently no logon servers available to service the logon request. The MSSQLSERVER service terminated unexpectedly.
    

    Ce problème se produit lorsque toutes les conditions suivantes sont remplies :

    • Le serveur fait partie d’un domaine.
    • Les services MSSQLSERVER et SQLServerAgent sont définis pour utiliser un compte de domaine pour le démarrage.
    • Le mode de démarrage pour MSSQLSERVER et SQLServerAgent est défini sur Automatique.

Cause

Le problème 1 et le problème 2 se produisent car le serveur est un ordinateur autonome et le service NetLogon ne démarre pas sur le serveur. Par conséquent, aucune authentification à l’échelle du domaine n’est possible.

Le problème 3 se produit car les services SQL Server tentent de démarrer avant le démarrage du service NetLogon.

Résolution

  • Pour résoudre le problème 1 et le problème 2, procédez comme suit :

    1. Modifiez le compte de démarrage de MSSQLSERVER et SQLServerAgent pour utiliser le compte système local.
    2. Redémarrez le serveur.

    Note

    Sur un ordinateur autonome, le service NetLogon doit être défini pour le démarrage manuel .

  • Pour résoudre le problème 3, utilisez les solutions de contournement suivantes :

    • Configurez le démarrage de SQL Server pour retarder le démarrage pour des serveurs Windows particuliers. D’autres services Windows tels que NetLogon se terminent en premier et SQL Server démarrent sans problème.

    • Configurez le démarrage de SQL Server pour réessayer. Le démarrage peut être terminé lors de la deuxième tentative de démarrage.

    • Modifiez la valeur 1 de détection-DadTransmits d’adresse en double pour toutes les interfaces réseau sur le serveur. Pour plus d’informations, consultez la commande Set-NetIPInterface .

    • Modifiez les options de récupération pour les services SQL Server et SQL Server Agent. Spécifiez Redémarrer le service en tant qu’action pour les options d’échec. Vous pouvez exécuter cette option à partir de l’applet Services des outils d’administration en utilisant les interfaces familières du gestionnaire de contrôle des services.

    Si l’option de démarrage retardée ne peut pas résoudre le problème 3, ajoutez les dépendances suivantes au service SQL Server :

    • Service d’assistance IP
    • Service serveur
    • Service de liste réseau

    Vous pouvez ajouter les dépendances à l’aide des commandes suivantes. L’exemple suivant suppose une instance MSSQLSERVERSQL Server par défaut. Pour une instance nommée, utilisez MSSQL$INSTANCENAME:

    sc.exe qc MSSQLSERVER ::view dependencies
    sc.exe config MSSQLSERVER depend=iphlpsvc/LanmanServer/netprofm
    sc.exe qc MSSQLSERVER ::view dependencies
    

    Les premières et troisième commandes affichent les dépendances avant et après la modification.