web-dev-qa-db-fra.com

L'installation de SQL Server 2014 Express échoue avec l'erreur «Impossible de trouver le descripteur de démarrage du moteur de base de données».

Permettez-moi de commencer par dire que je ne suis pas un administrateur de base de données et que je n'ai pas beaucoup d'expérience en administration de base de données. Je suis juste un gars qui essaie d'exécuter SQL Server sur ma machine locale pour créer des applications .NET simples pour l'apprentissage et la pratique. Je rencontre ce même problème référencé dans cet article ( L'installation de SQL Server 2012 Express échoue avec l'erreur "Impossible de trouver le descripteur de démarrage du moteur de base de données." ), mais c'est avec SQL Server Express 2014. Je ' ve essayé les choses suivantes qui n'ont pas résolu le problème:

  • sSL vérifié est désactivé
  • supprimé les dossiers MSSQL $ SQLEXPRESS sous le dossier Utilisateurs
  • changé en comptes intégrés dans SQL Configuration Manager
  • a exécuté le fichier d'installation en tant qu'administrateur
  • sélectionné le compte NT Service\MSSQL $ SQLEXPRESS par défaut lors de l'installation (notez qu'il m'a été interdit de sélectionner d'autres comptes)
  • Par le commentaire ci-dessous la réponse sélectionnée (de Frédéric), j'ai essayé de suivre ce chemin (propriétés de l'ordinateur, paramètres avancés, paramètres de profil utilisateur, suppression des profils net service\mssql) mais il n'existait pas comme indiqué. La chose la plus proche que j'ai pu trouver n'avait que des comptes d'utilisateurs (pas des comptes virtuels)
  • essayé d'utiliser l'authentification mixte lors de l'installation

Le lien vers MSDN dans la réponse pointe vers une ressource qui répertorie certaines données de configuration, mais il ne me dit pas où modifier les autorisations du compte de service. Je pense que c'est ce que je dois faire sur la base de ce que j'ai lu jusqu'à présent. J'ai regardé dans l'outil de gestion de la configuration SQL, mais rien ne me permet de modifier l'autorisation (que j'ai vue). Je vois des morceaux d'une solution, mais nulle part je n'ai trouvé quoi que ce soit qui dit "Utilisez cet outil pour modifier les autorisations d'un compte de service". Voici le journal des erreurs:

2015-02-08 19:55:05.51 Server      Microsoft SQL Server 2014 - 12.0.2000.8 (Intel X86) 
Feb 20 2014 19:20:46 
Copyright (c) Microsoft Corporation
Express Edition on Windows NT 6.1 <X64> (Build 7601: ) (WOW64)

2015-02-08 19:55:05.51 Server      UTC adjustment: -5:00
2015-02-08 19:55:05.51 Server      (c) Microsoft Corporation.
2015-02-08 19:55:05.51 Server      All rights reserved.
2015-02-08 19:55:05.51 Server      Server process ID is 2944.
2015-02-08 19:55:05.51 Server      System Manufacturer: 'System manufacturer', System     Model: 'System Product Name'.
2015-02-08 19:55:05.51 Server      Authentication mode is MIXED.
2015-02-08 19:55:05.51 Server      Logging SQL Server messages in file 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Log\ERRORLOG'.
2015-02-08 19:55:05.51 Server      The service account is 'NT Service\MSSQL$SQLEXPRESS'. This is an informational message; no user action is required.
2015-02-08 19:55:05.51 Server      Registry startup parameters: 
 -d C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\master.mdf
 -e C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Log\ERRORLOG
 -l C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\mastlog.ldf
2015-02-08 19:55:05.51 Server      Command Line Startup Parameters:
 -s "SQLEXPRESS"
 -m "SqlSetup"
 -Q
 -q "SQL_Latin1_General_CP1_CI_AS"
 -T 4022
 -T 4010
 -T 3659
 -T 3610
 -T 8015
 -d "C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Template Data\master.mdf"
 -l "C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Template Data\mastlog.ldf"
2015-02-08 19:55:05.84 Server      SQL Server detected 1 sockets with 4 cores per socket and 4 logical processors per socket, 4 total logical processors; using 4 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2015-02-08 19:55:05.84 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2015-02-08 19:55:05.84 Server      Detected 8191 MB of RAM. This is an informational message; no user action is required.
2015-02-08 19:55:05.84 Server      Using conventional memory in the memory manager.
2015-02-08 19:55:05.89 Server      Default collation: SQL_Latin1_General_CP1_CI_AS (us_english 1033)
2015-02-08 19:55:05.90 Server      Perfmon counters for resource governor pools and groups failed to initialize and are disabled.
2015-02-08 19:55:05.91 Server      Query Store settings initialized with enabled = 1, 
2015-02-08 19:55:05.91 Server      The maximum number of dedicated administrator connections for this instance is '1'
2015-02-08 19:55:05.91 Server      This instance of SQL Server last reported using a process ID of 5432 at 2/8/2015 7:55:02 PM (local) 2/9/2015 12:55:02 AM (UTC). This is an informational message only; no user action is required.
2015-02-08 19:55:05.91 Server      Node configuration: node 0: CPU mask: 0x0000000f:0 Active CPU mask: 0x0000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2015-02-08 19:55:05.92 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2015-02-08 19:55:05.94 Server      Database Mirroring Transport is disabled in the endpoint configuration.
2015-02-08 19:55:05.94 Server      Software Usage Metrics is disabled.
2015-02-08 19:55:05.94 spid7s      Warning ******************
2015-02-08 19:55:05.94 spid7s      SQL Server started in single-user mode. This an informational message only. No user action is required.
2015-02-08 19:55:05.94 spid7s      Starting up database 'master'.
2015-02-08 19:55:05.98 spid7s      1 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
2015-02-08 19:55:05.98 spid7s      0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
2015-02-08 19:55:06.01 Server      CLR version v4.0.30319 loaded.
2015-02-08 19:55:06.09 Server      Common language runtime (CLR) functionality initialized using CLR version v4.0.30319 from C:\Windows\Microsoft.NET\Framework\v4.0.30319\.
2015-02-08 19:55:06.09 spid7s      Service Master Key could not be decrypted using one of its encryptions. See sys.key_encryptions for details.
2015-02-08 19:55:06.12 spid7s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2015-02-08 19:55:06.12 spid7s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2015-02-08 19:55:06.15 spid7s      SQL Trace ID 1 was started by login "sa".
2015-02-08 19:55:06.15 spid7s      Server name is 'MIKE-PC\SQLEXPRESS'. This is an informational message only. No user action is required.
2015-02-08 19:55:06.15 spid7s      Starting up database 'msdb'.
2015-02-08 19:55:06.16 spid11s     Starting up database 'mssqlsystemresource'.
2015-02-08 19:55:06.16 spid14s     Error: 17190, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     Initializing the FallBack certificate failed with error code: 1, state: 20, error number: 0.
2015-02-08 19:55:06.16 spid14s     Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property. 
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     TDSSNIClient initialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property. 
2015-02-08 19:55:06.16 spid14s     Error: 17826, Severity: 18, State: 3.
2015-02-08 19:55:06.16 spid14s     Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2015-02-08 19:55:06.16 spid14s     Error: 17120, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

Je suis incroyablement frustré que quelque chose que je suppose être simple se révèle être très difficile et prendre beaucoup de temps. Tout conseil serait apprécié - merci.

[MISE À JOUR]

J'ai copié les bases de données de modèles par défaut à l'emplacement spécifié dans l'erreur. Cela m'a permis de démarrer le service db. J'ai ouvert SQL Server Management Studio et je n'ai pas pu me connecter à l'aide de l'authentification Windows. Depuis que j'ai utilisé l'authentification mixte lors de ma configuration, j'ai pu utiliser le compte sa que j'ai créé.

Malheureusement, cela a provoqué un autre message d'erreur: "Impossible d'afficher l'état d'intégrité de la stratégie au niveau du serveur, car l'utilisateur n'a pas d'autorisation. L'autorisation d'accéder à la base de données msdb est requise pour que cette fonctionnalité fonctionne correctement." Je ne sais pas comment définir les autorisations pour le compte sa créé lors de l'installation. Je peux voir les bases de données système dans l'arborescence de navigation à gauche, mais à côté de la msdb se trouve le texte (récupération en attente). Lorsque j'essaie de créer une nouvelle base de données, j'obtiens l'erreur suivante:

attempt to add new database error message

J'ai essayé d'exécuter une réparation sur l'ensemble de l'installation et j'obtiens ce message d'erreur lié au service SQL Server: "La fonctionnalité SQL Server 'SQL_Engine_Core_Inst' n'est pas dans un état pris en charge pour la réparation, car elle n'a jamais été correctement configurée. des installations réussies peuvent être réparées. Pour continuer, supprimez la fonctionnalité SQL Server spécifiée. " Voici le journal des erreurs complet .

J'ai déjà essayé de le supprimer et de le réinstaller plusieurs fois avant cela, il semble donc que je sois dans un cercle vicieux.

7
Bugalley

Impossible de trouver l'erreur de poignée de démarrage du moteur de base de données signifie que l'installation de SQL Server a pu installer les services SQL Server, mais lorsque l'installation tente de démarrer les services SQL Server, son échec.

Une solution simple que j'ai mentionnée dans Cet article Technet est

Accédez au gestionnaire de configuration SQL Server et recherchez les services SQL Server

Cliquez avec le bouton droit sur le service express SQL Server et sélectionnez les propriétés et remplacez le compte de démarrage par Système local et sélectionnez Appliquer puis OK. Cela démarrera les services avec le privilège de compte système local.

enter image description here

Certaines raisons qui peuvent provoquer cette erreur.

  1. Le compte que l'utilisateur a sélectionné dans la fenêtre de la page de configuration du serveur (pendant l'installation) n'est pas en mesure de mettre en ligne les services du moteur de base de données SQL Server. Soit il manque de privilèges, soit il est corrompu. Lors de l'installation des services du moteur de base de données, SQL Server essaie de mettre les services de base de données en ligne en tant que processus interne, mais en raison d'un compte de démarrage corrompu ou ne disposant pas des privilèges appropriés, il ne parvient pas à le faire et, finalement, l'installation échoue.

  2. Une autre raison est lorsque l'installation échoue pour la première fois pour une raison quelconque et que la désinstallation de l'utilisateur a échoué à l'installation du programme d'ajout/suppression, la désinstallation laisse le compte en état interrompu, donc toute nouvelle tentative d'installation fait clignoter ce message d'erreur.

  3. La raison peut également être que l'installation de SQL Server a réussi à installer SQL Server et ses services, mais en raison d'une autre limitation du système ou d'autres erreurs liées au système, SQL Server n'est pas en mesure de se mettre en ligne.

Dans votre cas, la raison est

2015-02-08 19:55:06.16 spid14s     Error: 17190, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     Initializing the FallBack certificate failed with error code: 1, state: 20, error number: 0.
2015-02-08 19:55:06.16 spid14s     Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.

Pour résoudre ce problème, démarrez le compte de service SQL Server avec le système local ou créez un nouveau compte local disposant de privilèges d'administrateur sur la machine locale et essayez de démarrer le service SQL Server avec ce compte. Cet article Blogs.msdn dit une telle une erreur peut survenir si le profil du compte est corrompu

Comme vous le savez déjà, il n'est pas conseillé d'exécuter le service SQL Server avec un compte disposant de privilèges d'administrateur. Dans ce cas, pour le moment, vous pouvez exécuter le compte avec le système local, mais vous pouvez utiliser Configurer le compte de service Windows et les autorisations pour créer un compte avec des privilèges minimum.

MODIFIER:

FCB :: Échec de l'ouverture: impossible d'ouvrir le fichier E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf pour le fichier numéro 1. Erreur du système d'exploitation: 2 (le système ne peut pas trouver le fichier spécifié. ).

09-02-2015 10: 42: 45.12 Erreur spid8s: 5120, gravité: 16, état: 101.

09/02/2015 10: 42: 45.12 spid8s Impossible d'ouvrir le fichier physique "E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf". Erreur du système d'exploitation 2: "2 (le système ne trouve pas le fichier spécifié.)".

2015-02-09 10: 42: 45.12 Erreur spid8s: 17207, gravité: 16, état: 1.

Selon les journaux ci-dessous, SQL Server recherche le fichier msdb à l'emplacement E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj \

Pouvez-vous déplacer manuellement le fichier de données msdb et le fichier journal à l'emplacement ci-dessus. Je sais que ce n'est pas votre emplacement souhaité, mais laissez d'abord SQL Server se mettre en ligne, puis nous pouvons utiliser la commande alter database et changer l'emplacement en fonction de ce qui vous convient. Pour moi, c'est un bug et cela se produit parce que SQL Server ne peut pas, en quelque sorte, décider de l'emplacement des fichiers msd et donc choisir un emplacement aléatoire.

Annuler si cela ne fonctionne pas

3
Shanky

Je suis prudemment optimiste quant à la résolution du problème. Il y a quelques choses que j'ai faites qui peuvent avoir aidé:

  • J'ai modifié certaines autorisations au niveau du fichier dans le dossier d'application SQL.
  • J'ai exécuté les scripts pour déplacer certaines des bases de données de modèles qui pointaient vers le mauvais emplacement.
  • J'ai pu ajouter des comptes de connexion dans SQL Server.

La dernière chose qui a semblé le réparer, cependant, était la reconstruction des bases de données système ( détails ici ). Je n'ai jamais pu créer de base de données, il n'y avait donc pas de sauvegarde à restaurer. Je suis parti de zéro et ça a marché.

Merci à @Shanky pour toutes les suggestions.

1
Bugalley

Cela s'est produit en cas d'échec de l'installation. Ma résolution utilisait une clé USB et créait le chemin d'accès à l'installation temporaire (****main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj). (Ou si vous avez déjà ce lecteur, utilisez-le.) Vous devrez peut-être utiliser le Gestionnaire de disque pour modifier les lettres de lecteur. Vous pouvez copier des fichiers système, tempdb.mdf etc. à partir du dossier d'installation (C:\Program Files\Microsoft SQL Server\....instance\DATA\) dans vos nouveaux dossiers temporaires.

Après m'être connecté à SQL Server Management Studio, j'ai également modifié l'autorisation de démarrage pour n'importe quel compte qui le démarrerait. Et j'ai remarqué, très effrayant, que le mot de passe sa n'a jamais été défini, même si je l'ai défini lors de l'installation - je ne pouvais donc pas me connecter à la nouvelle instance, sauf si j'utilisais sa =, avec un mot de passe vide. Une fois entré, je pourrais attribuer toutes les informations appropriées.

Ensuite, j'ai utilisé la commande ci-dessous (NAME est un nom logique, utilisez les noms de fichiers corrects):

ALTER DATABASE tempdb
MODIFY FILE (
  NAME = 'templog' ,
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MYINSTANCENAME\MSSQL\DATA\templog.ldf'
)
Go

J'ai fait cela sur tous les fichiers et SQL Server a répondu avec un message me disant de redémarrer pour que le nouveau chemin prenne effet.

Tout cela s'est produit lorsque j'ai dû terminer la tâche car l'installation de SQL Server 2016 a terminé la dernière étape.

0

Il est frustrant de constater qu'il est souvent indiqué que l'installation de SQL sur un DC n'est pas recommandé, les gens négligent de dire pourquoi ou comment. Ils se réfèrent aux ressources nécessaires à AD, mais la plupart d'entre nous avec ce problème n'ont pas 500 utilisateurs, WSUS, IIS, VLAN, etc., etc. Nous avons un seul serveur pour quelques-uns, lisez "FEW" comme dans 4 ou 5 utilisateurs. Un deuxième serveur est tout simplement idiot dans de si petits réseaux. Vous pourrait faire valoir, mais ce n'est pas le point ici. Ce dont nous avons besoin est une solution, une solution à serveur unique.

Ma solution semble fonctionner sans solutions de contournement compliquées. Créez un utilisateur administratif dans AD. Installez SQL à l'aide de "Personnalisé", car vous devez spécifier le compte d'utilisateur utilisé par le moteur de base de données et en faire le compte d'utilisateur que vous venez de créer. La création de comptes d'utilisateurs pour les services SQL est une pratique recommandée, mais cette recommandation n'est pas liée à cette erreur.

C'est ça. L'installation fonctionne. Vous n'avez pas besoin de revenir en arrière et de le corriger avec PowerShell, le mode mono-utilisateur ou les commandes SQL. Les gens qui savent, supposent que vous n'avez pas vérifié ce qu'ils régurgitent avec leurs liens "vérifier ces". Et ils en savent juste assez pour confondre ceux d'entre nous avec le problème. Keep It Simple Stupid. Honnêtement, cela ne devrait pas être si difficile, Microsoft fabrique les deux produits. Il doit y avoir une réponse simple. Nulle part je ne l'ai trouvé, voici donc ma réponse.

0
user146303