Wie behebt man die Beschädigung der Systemdatenbank in SQL Server?
SQL Server unterhält Systemdatenbanken (master, model, msdb und resource), damit eine Serverinstanz funktionieren kann. Sie können jedoch keine Verbindung zu einer Serverinstanz herstellen, wenn die Systemdatenbanken beschädigt sind. Um den Server wieder in Betrieb zu nehmen, können Sie versuchen, die Systemdatenbanken aus Sicherungskopien wiederherzustellen. Wenn keine aktuelle Sicherung vorhanden ist, kann die Wiederherstellung der Systemdatenbanken helfen, das Problem zu beheben. In diesem Blog werden die Schritte zum Wiederherstellen der Systemdatenbanken erläutert.
Bevor Sie mit dem Wiederherstellungsprozess beginnen, müssen Sie einige Voraussetzungen erfüllen, um sicherzustellen, dass die Systemdatenbanken mit ihren ursprünglichen Einstellungen wiederhergestellt werden.
Voraussetzungen
- Stellen Sie sicher, dass Sie ein Mitglied der sysadmin feste Serverrolle um die Systemdatenbanken neu zu erstellen.
- Behalten Sie den Überblick über die auf Ihre Serverinstanz angewandten Hotfixes und die aktuelle Sortierung. Sie müssen die Hotfixes nach Abschluss des Wiederherstellungsprozesses erneut anwenden.
- Wenn die Systemdatenbanken neu erstellt werden, werden die Datenbanken am ursprünglichen Speicherort installiert. Wenn Sie also die Daten- oder Protokolldateien (.ldf) einer Systemdatenbank an einen anderen Ort verschoben haben, müssen Sie die Dateien wieder zurückschieben. Daher müssen Sie den aktuellen Speicherort der Daten- und Protokolldateien aufzeichnen.
- Die Vorlagedateien werden während des Wiederherstellungsprozesses benötigt. Stellen Sie sicher, dass die Kopien der Master-, Modell- und msdb-Daten sowie der Protokollvorlagendateien auf dem lokalen Server vorhanden sind. Sie finden die Vorlagendateien unter:
C:\Programmdateien\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn\Vorlagen
Schritte zum Wiederherstellen von Systemdatenbanken in SQL Server
Hinweis: Bevor Sie die folgenden Schritte ausführen, überprüfen Sie die SQL-Fehlerprotokolle, um weitere Einzelheiten darüber zu erfahren, warum die Serverinstanz nicht startet. Möglicherweise liegt das Problem nicht an der Master-Datenbank.
Gehen Sie folgendermaßen vor, um die Systemdatenbanken für eine Serverinstanz neu zu erstellen:
- Bevor Sie mit dem Wiederherstellungsprozess beginnen, erstellen Sie ein FULL-Backup aller System- und Benutzerdatenbanken. Möglicherweise müssen Sie die Sicherung wiederherstellen, um einen Datenverlust zu vermeiden. Weitere Einzelheiten finden Sie unter Sichern und Wiederherstellen von Systemdatenbanken (SQL Server).
- Gehen Sie zu Ihrem Installationsmedium und kopieren Sie den Speicherort der Datei setup.exe auf den lokalen Server Ihres Systems. Standardmäßig befindet sich die Datei setup.exe in:
C:\Programmdateien\Microsoft SQL Server\140\Setup Bootstrap\SQLServer2017
Hier ist ‘140’ die Versionsnummer des SQL-Servers. Sie können die Version durch die Version Ihres SQL-Servers ersetzen (‘110’, ‘120’, ‘130’ usw.).
- Öffnen Sie nun die Eingabeaufforderung als Administrator und führen Sie das folgende Skript aus:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=Instanzname /SQLSYSADMINACCOUNTS=Konten [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]
Ersetzen Sie im obigen Befehl InstanceName durch den Namen Ihrer SQL Server-Instanz.
Ersetzen Sie außerdem ‘=accounts’ durch den lokalen Windows-Kontonamen oder den Domänennamen, den Sie für den Zugriff auf SQL Server nach dem Wiederherstellungsprozess verwenden möchten. Dies ist wichtig, da Sie beim Wiederaufbau der Hauptdatenbank alle Anmeldungen verlieren werden. Wenn Sie mehr als ein Konto hinzufügen, geben Sie Leerzeichen ein, um die Konten zu trennen. Fügen Sie außerdem ein Passwort für das SQL Server-Konto hinzu.
Zum Beispiel haben wir im REBUILD-Befehl den Namen der Instanz durch MSSQLSERVER ersetzt, die wir neu erstellen werden. Außerdem haben wir den lokalen Windows-Kontonamen für SYSADMINACCOUNTS hinzugefügt und das Passwort für das SA-Konto eingegeben. Wir haben SQLCOLLATION entfernt, da es nicht erforderlich ist.
Drücken Sie die Eingabetaste und der Wiederherstellungsprozess wird ohne Fehler abgeschlossen. Sie können überprüfen, ob der Wiederherstellungsprozess erfolgreich abgeschlossen wurde, indem Sie die Protokolldatei Summary.txt überprüfen. Diese Datei finden Sie unter dem Pfad – C:\Programme\Microsoft SQL Server\140\Setup Bootstrap\Logs.
- Nach Abschluss des Wiederherstellungsprozesses müssen Sie möglicherweise die Systemdatenbanken aus der in Schritt 1 erstellten Sicherung wiederherstellen. Dies geschieht in der Regel, wenn Sie (verlorene) Benutzerdatenbanken wiederherstellen müssen, die vor dem Wiederherstellungsprozess vorhanden waren. Sobald der Wiederherstellungsprozess abgeschlossen ist, wird SQL Server heruntergefahren. Starten Sie den Server neu und überprüfen Sie, ob Sie auf die Datenbanken zugreifen können.
Zum Abschluss
In diesem Blog wurde die schrittweise Anleitung zur Wiederherstellung aller Systemdatenbanken erläutert. Außerdem wurden einige Voraussetzungen beschrieben, die Sie vor der Wiederherstellung erfüllen müssen. Um beschädigte SQL Server-Datenbankdateien (.mdf und .ndf) zu reparieren, können Sie ein SQL-Datenbankreparaturtool verwenden. Stellar Repair for MS SQL ist ein solches Tool, das Ihnen hilft, sowohl .mdf- als auch .ndf-Dateien zu reparieren und die Datenbank in ihrer ursprünglichen Form mit allen intakten Daten wiederherzustellen.