Die Installation von SQL Server 2014 Express schlägt mit dem Fehler "Das Start-Handle für das Datenbankmodul konnte nicht gefunden werden" fehl.

7

Lassen Sie mich zunächst sagen, dass ich kein DBA bin und nicht viel Erfahrung mit Datenbankadministratoren habe. Ich bin nur ein Typ, der versucht, SQL Server auf meinem lokalen Computer auszuführen, um einige einfache .NET-Anwendungen zum Lernen und Üben zu erstellen. Ich habe das gleiche Problem, auf das in diesem Beitrag verwiesen wird (Die Installation von SQL Server 2012 Express schlägt mit dem Fehler "Das Start-Handle für das Datenbankmodul konnte nicht gefunden werden" fehl , aber es ist mit SQL Server Express 2014 aufgetreten. Ich habe die folgenden Schritte ausgeführt Problem nicht beheben:

  • Verifiziertes SSL ist deaktiviert
  • löschte die MSSQL $ SQLEXPRESS-Ordner unter dem Benutzerordner
  • in SQL Configuration Manager in integrierte Konten geändert
  • führte die Installationsdatei als Administrator aus
  • hat während der Installation das Standardkonto für NT Service \ MSSQL $ SQLEXPRESS ausgewählt (beachten Sie, dass mir die Auswahl anderer Konten untersagt war)
  • Gemäß dem Kommentar unter der ausgewählten Antwort (von Frederic) habe ich versucht, diesem Pfad zu folgen (Computereigenschaften, erweiterte Parameter, Benutzerprofilparameter, Unterdrückung von net service \ mssql-Profilen), aber er war nicht wie aufgeführt vorhanden. Das nächste, was ich finden konnte, waren nur Benutzerkonten (keine virtuellen Konten).
  • habe versucht, während des Setups eine gemischte Authentifizierung zu verwenden

Der Link zu MSDN in der Antwort verweist auf eine Ressource, in der einige Konfigurationsdaten aufgeführt sind, die jedoch nicht angibt, wo die Berechtigungen für das Dienstkonto geändert werden sollen. Ich denke, das ist es, was ich tun muss, basierend auf dem, was ich bisher gelesen habe. Ich habe im SQL Configuration Management Tool nachgesehen, aber nichts dort erlaubt mir, die Berechtigung zu ändern (die ich gesehen habe). Ich sehe Teile einer Lösung, aber nirgendwo habe ich etwas gefunden, das besagt: "Verwenden Sie dieses Tool, um die Berechtigungen eines Dienstkontos zu ändern." Hier ist das Fehlerprotokoll:

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.

Ich bin wahnsinnig frustriert, dass etwas, von dem ich annehme, dass es einfach sein sollte, sich als sehr schwierig und zeitaufwändig herausstellt. Jeder Rat wäre dankbar - danke.

[AKTUALISIEREN]

Ich habe die Standardvorlagendatenbanken an den im Fehler angegebenen Speicherort kopiert. Dadurch konnte ich den Datenbankdienst starten. Ich habe SQL Server Management Studio geöffnet und konnte mich nicht mit der Windows-Authentifizierung anmelden. Da ich während des Setups eine gemischte Authentifizierung verwendet habe, konnte ich das von mir erstellte sa-Konto verwenden.

Leider verursachte dies eine weitere Fehlermeldung: "Der Status des Richtlinienzustands kann auf Serverebene nicht angezeigt werden, da der Benutzer keine Berechtigung hat. Die Berechtigung zum Zugriff auf die msdb-Datenbank ist erforderlich, damit diese Funktion ordnungsgemäß funktioniert." Ich bin nicht sicher, wie ich Berechtigungen für das während der Installation erstellte sa-Konto festlegen soll. Ich kann die Systemdatenbanken im Navigationsbaum links sehen, aber neben der msdb befindet sich der Text (Wiederherstellung ausstehend). Wenn ich versuche, eine neue Datenbank zu erstellen, wird folgende Fehlermeldung angezeigt:

Versuchen Sie, eine neue Datenbankfehlermeldung hinzuzufügen

Ich habe versucht, eine Reparatur für die gesamte Installation auszuführen, und erhalte die folgende Fehlermeldung im Zusammenhang mit dem SQL Server-Dienst: "Die SQL Server-Funktion 'SQL_Engine_Core_Inst' befindet sich nicht in einem unterstützten Reparaturzustand, da sie nie erfolgreich konfiguriert wurde. Nur Funktionen von erfolgreichen Installationen kann repariert werden. Um fortzufahren, entfernen Sie die angegebene SQL Server-Funktion. " Hier ist das vollständige Fehlerprotokoll .

Ich habe bereits mehrere Male zuvor versucht, es zu entfernen und neu zu installieren. Es scheint also, dass ich mich in einem Teufelskreis befinde.

Bugalley
quelle

Antworten:

3

Der Fehler beim Starten des Datenbankmoduls konnte nicht gefunden werden. Dies bedeutet, dass die SQL Server-Installation SQL Server-Dienste installieren konnte. Wenn die Installation jedoch versucht, SQL Server-Dienste zu starten, schlägt dies fehl.

Eine einfache Lösung, die ich in diesem Technet-Artikel erwähnt habe, ist

Rufen Sie den SQL Server-Konfigurationsmanager auf und suchen Sie die SQL Server-Dienste

Klicken Sie mit der rechten Maustaste auf den SQL Server-Expressdienst, wählen Sie Eigenschaften aus, ändern Sie das Startkonto in Lokales System und wählen Sie Übernehmen und dann OK. Dadurch werden Dienste mit lokalen Systemkontoberechtigungen gestartet.

Geben Sie hier die Bildbeschreibung ein

Bestimmte Gründe, die diesen Fehler verursachen können.

  1. Das Konto, das der Benutzer im Fenster "Serverkonfiguration" (während der Installation) ausgewählt hat, kann die SQL Server-Datenbankmoduldienste nicht online schalten. Entweder fehlt das Privileg oder es ist beschädigt. Während der Installation der Datenbankmoduldienste versucht SQL Server, Online-Datenbankdienste als internen Prozess bereitzustellen. Aufgrund eines beschädigten oder nicht geeigneten Startkontos schlägt dies jedoch fehl und die Installation schlägt letztendlich fehl.

  2. Ein anderer Grund ist, wenn die Installation aus irgendeinem Grund zum ersten Mal fehlschlägt und die Installation des Benutzers aus dem Programm zum Entfernen und Entfernen deinstalliert wird. Bei der Deinstallation bleibt das Konto in einem fehlerhaften Zustand, sodass bei jedem weiteren Installationsversuch diese Fehlermeldung angezeigt wird.

  3. Der Grund kann auch sein, dass die SQL Server-Installation bei der Installation von SQL Server und seinen Diensten erfolgreich war, SQL Server jedoch aufgrund einer anderen Einschränkung des Systems oder anderer systembezogener Fehler nicht online geschaltet werden kann.

In Ihrem Fall ist Grund

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.

So beheben Sie dieses Problem Starten Sie entweder das SQL Server-Dienstkonto mit dem lokalen System oder erstellen Sie ein neues lokales Konto mit Administratorrechten auf dem lokalen Computer und versuchen Sie, den SQL Server-Dienst mit diesem Konto zu starten. In diesem Blogs.msdn- Artikel heißt es, dass ein solcher Fehler auftreten kann, wenn das Kontoprofil beschädigt ist

Wie Sie bereits wissen, wird das Ausführen des SQL Server-Dienstes mit einem Konto mit Administratorrechten nicht empfohlen. In diesem Fall können Sie das Konto vorerst mit dem lokalen System ausführen, aber Sie können Windows-Dienstkonto und -Berechtigungen konfigurieren verwenden , um ein Konto mit Mindestberechtigungen zu erstellen.

BEARBEITEN:

FCB :: Öffnen fehlgeschlagen: Datei E: \ sql12_main_t.obj.x86Release \ sql \ mkmastr \ database \ mkmastr.proj \ MSDBData.mdf für Dateinummer 1 konnte nicht geöffnet werden. Betriebssystemfehler: 2 (Das System kann die angegebene Datei nicht finden. ).

2015-02-09 10: 42: 45.12 spid8s Fehler: 5120, Schweregrad: 16, Status: 101.

2015-02-09 10: 42: 45.12 spid8s Die physische Datei "E: \ sql12_main_t.obj.x86Release \ sql \ mkmastr \ database \ mkmastr.proj \ MSDBData.mdf" kann nicht geöffnet werden. Betriebssystemfehler 2: "2 (Das System kann die angegebene Datei nicht finden.)".

2015-02-09 10: 42: 45.12 spid8s Fehler: 17207, Schweregrad: 16, Status: 1.

Gemäß den folgenden Protokollen sucht SQL Server nach der MSDB-Datei am Speicherort E: \ sql12_main_t.obj.x86Release \ sql \ mkmastr \ database \ mkmastr.proj \

Können Sie sowohl die MSDB-Datendatei als auch die Protokolldatei manuell an den oben genannten Speicherort verschieben? Ich weiß, dass dies nicht Ihr gewünschter Speicherort ist, aber lassen Sie zuerst SQL Server online gehen, dann können wir den Befehl zum Ändern der Datenbank verwenden und den Speicherort nach Ihren Wünschen ändern. Für mich ist dies ein Fehler und geschieht, weil SQL Server irgendwie nicht in der Lage ist, den Speicherort von msd-Dateien zu bestimmen und daher einen zufälligen Speicherort auszuwählen.

Zurücksetzen, wenn dies nicht funktioniert

Shanky
quelle
3
Die Deinstallation und Neuinstallation mit NT Authority \ SYSTEM (wie in Ihrem Technet-Artikel erwähnt) wird mir geholfen. Vielen Dank.
Ivan Samygin
1

Ich bin vorsichtig optimistisch, dass ich das Problem behoben habe. Es gibt ein paar Dinge, die ich getan habe, die vielleicht geholfen haben:

  • Ich habe einige Berechtigungen auf Dateiebene im SQL-Anwendungsordner geändert.
  • Ich habe die Skripte ausgeführt, um einige der Vorlagendatenbanken zu verschieben, die auf den falschen Speicherort verweisen.
  • Ich konnte einige Anmeldekonten in SQL Server hinzufügen.

Das Letzte, was das Problem zu beheben schien, war die Neuerstellung der Systemdatenbanken ( Details hier ). Ich konnte nie Datenbanken erstellen, daher mussten keine Backups wiederhergestellt werden. Ich habe gerade von vorne angefangen und es hat funktioniert.

Vielen Dank an @Shanky für alle Vorschläge.

Bugalley
quelle
0

Dies trat bei einer fehlgeschlagenen Installation auf. Meine Lösung bestand darin, ein USB-Laufwerk zu verwenden und den Pfad zu erstellen, in dem sich die temporäre Installation befand ( ****main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj). (Wenn Sie dieses Laufwerk bereits haben, verwenden Sie es.) Möglicherweise müssen Sie den Festplattenmanager verwenden, um die Laufwerksbuchstaben zu ändern. Sie können Systemdateien tempdb.mdfusw. aus dem Installationsordner ( C:\Program Files\Microsoft SQL Server\....instance\DATA\) in Ihre neuen temporären Ordner kopieren .

Nachdem ich mich bei SQL Server Management Studio angemeldet hatte, änderte ich auch die Startberechtigung für jedes Konto, das es starten würde. Und ich bemerkte sehr beängstigend, dass das sa- Passwort nie festgelegt wurde, obwohl ich es während des Setups festgelegt hatte. Daher konnte ich mich nicht mit einem leeren Kennwort bei der neuen Instanz anmelden, es sei denn, ich habe sa verwendet . Einmal drin, konnte ich alle richtigen Informationen zuweisen.

Dann habe ich den folgenden Befehl verwendet ( NAMEist ein logischer Name, verwenden Sie die richtigen Dateinamen):

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

Ich habe dies für alle Dateien getan und SQL Server antwortete mit einer Meldung, dass ich neu starten soll, damit der neue Pfad wirksam wird.

All dies geschah, als ich die Aufgabe beenden musste, weil die Installation von SQL Server 2016 den letzten Schritt abgeschlossen hatte.

Debuggen Sie SQL-Installationen
quelle
0

Es ist frustrierend, dass oft behauptet wird, dass die Installation von SQL auf einem DC nicht empfohlen wird. Die Leute vernachlässigen es zu sagen, warum oder wie. Sie beziehen sich auf Ressourcen, die von AD benötigt werden, aber die meisten von uns mit diesem Problem haben keine 500 Benutzer, WSUS, IIS, VLANs usw. Wir haben einen einzigen Server für einige, lesen Sie "WENIG" wie in 4 oder 5 , Benutzer. Ein zweiter Server ist in so kleinen Netzwerken einfach albern. Man könnte argumentieren, aber das ist hier nicht der Punkt. Was wir brauchen, ist eine Lösung, eine Einzelserverlösung.

Meine Lösung scheint ohne komplizierte Problemumgehungen zu funktionieren. Erstellen Sie einen Administrator in AD. Installieren Sie SQL mit "Benutzerdefiniert", da Sie das Benutzerkonto angeben müssen, das das Datenbankmodul verwendet, und es zum gerade erstellten Benutzerkonto machen müssen. Das Erstellen von Benutzerkonten für SQL-Dienste wird empfohlen, diese Empfehlung ist jedoch nicht mit diesem Fehler verknüpft.

Das ist es. Die Installation funktioniert. Sie müssen nicht zurückgehen und das Problem mit Powershell-, Einzelbenutzermodus- oder SQL-Befehlen beheben. Die Leute, die es wissen, gehen davon aus, dass Sie nicht überprüft haben, was sie mit ihren "Überprüfen Sie diese" Links wieder auffliegen lassen. Und sie wissen gerade genug, um diejenigen von uns mit dem Problem zu verwechseln. Halten Sie es einfach blöd. Ehrlich gesagt sollte dies nicht so schwer sein, Microsoft stellt beide Produkte her. Es muss eine einfache Antwort geben. Nirgendwo habe ich es gefunden, also hier ist meine Antwort.

user146303
quelle