Einige Artikelnummern haben sich möglicherweise geändert. Wenn dies nicht das ist, wonach Sie suchen, versuchen Sie, alle Artikel zu durchsuchen. Artikel suchen
Windows Server: Microsoft SQL Server MSDB Datenbank-Recovery
Zusammenfassung:Informationen zum Wiederherstellen einer Microsoft SQL Server MSDB-Datenbank.
Wählen Sie ein Produkt aus, um die Artikelrelevanz zu prüfen.
Dieser Artikel gilt für Dieser Artikel gilt nicht fürDieser Artikel ist nicht an ein bestimmtes Produkt gebunden.In diesem Artikel werden nicht alle Produktversionen aufgeführt.
Wenn eine Microsoft SQL Server MSDB-Datenbank beschädigt ist, kann sie möglicherweise nicht online geschaltet werden und betriebsbereit sein. Der SQL Server Agent-Service wird nicht gestartet und geplante Jobs werden nicht automatisch oder manuell ausgeführt.
Ursache
Eine Beschädigung der SQL Server-Datenbankdatei kann aus vielen verschiedenen Gründen auftreten. Die meisten beschädigten MSDB-Datenbankereignisse von Microsoft SQL Server treten aufgrund von Hardwareproblemen im Zusammenhang mit Arbeitsspeicher-, Festplatten- oder Prozessorproblemen auf.
Lösung
Es gibt drei Methoden zum Wiederherstellen von Microsoft SQL MSDB-Datenbanken:
Wiederherstellen aus Backup
Verwenden von DBCC CheckDB zum Reparieren der MSDB-Datenbank
Ersetzen der MSDB-Datenbankdateien
MSDB-Datenbankwiederherstellung aus Backup:
Der Wiederherstellungsprozess mit SQL Server Management Studio erfordert ein aktuelles Backup und kann durchgeführt werden, indem Sie zu den Eigenschaften der Datenbank "msdb" wechseln, Aufgaben > Datenbank wiederherstellen >und auf den Speicherort des Backupmediums verweisen.
Verwenden Sie DBCC CheckDB für die Datenbankreparatur:
Wenn kein Backup verfügbar ist, können wir DBCC CheckDB ausführen, um die aktuelle MSDB-Datenbank und ihren Inhalt zu speichern. Mit den folgenden T-SQL-Befehlen wird die Integrität der MSDB-Datenbank überprüft. Führen Sie eine Softreparatur der MSDB-Datenbank und abschließend eine Reparatur der MSDB-Datenbank durch:
MSDB-Integritätsprüfung; Ist die Datenbank frei von Beschädigungen?
Führen Sie den folgenden Befehl im Fenster "SSMS query" aus:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, NOINDEX);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Wir möchten die Zeile am unteren Rand des Rückgabefensters überprüfen, in der Fehler zu "Alllocation" und "Consistency" gemeldet werden. Eine beschädigte MSDB-Datenbank meldet einen Fehler und erfordert die folgenden DBCC CHECKDB-Befehle zur Reparatur.
MSDB T-SQL-Befehl für eine versuchte "weiche Recovery" ohne Datenverlust:
Führen Sie den folgenden Befehl im Fenster "SSMS query" aus:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, REPAIR_REBUILD);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Führen Sie nach dem Ausführen des obigen Befehls DBCC CheckDB erneut aus, um den neuen Status der Datenbank anzuzeigen.
MSDB T-SQL-Befehl für einen versuchten "Hard Recovery"-Recovery-Versuch mit möglichem Datenverlust:
Führen Sie den folgenden Befehl im Fenster "SSMS query" aus:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, REPAIR_ALLOW_DATA_LOSS);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Führen Sie nach dem Ausführen des obigen Befehls DBCC CheckDB erneut aus, um den neuen Status der Datenbank anzuzeigen.
Ersetzen Sie die MSDB-Datenbankdateien.
Wenn die MSDB-Datenbank beschädigt ist und die DBCC-Reparaturoptionen nicht funktionieren, legen Sie eine neue MSDB-Datenbank an, indem Sie die MSDB-Datenbankdateien ersetzen.
Wenn die MSDB-Datenbankdateien ersetzt werden, gehen alle Informationen wie nutzerdefinierte Backupjobs, Aufgabeninformationen, Replikation, Protokollversand und Wartungsplandaten verloren.
Die folgenden Schritte werden verwendet, um eine vorhandene MSDB-Datenbank durch eine neue Standard-MSDB-Datenbank zu ersetzen.
Navigieren Sie zum SQL Server-Installationsverzeichnis und navigieren Sie zum Ordner "Templates" unter dem Binn-Verzeichnis:
Die Dateien msdbdata.mdf und msdblog.ldf sind die MSDB-Datenbankvorlagendateien, die wir für eine neue stabile MSDB-Datenbank aufrufen müssen.
Der SQL Server-Dienst muss beendet werden, um die vorhandenen MSDB-Datenbankdateien zu ersetzen.
Navigieren Sie zum Verzeichnis SQL Server Data. Der Verzeichnispfad im folgenden Beispiel lautet C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA
Suchen Sie die beschädigten Dateien "msdbdata.mdf" und "msdblog.ldf".
Kopieren und verschieben Sie die Dateien in ein anderes Verzeichnis. In diesem Fall verschieben wir sie in einen Ordner namens "MSDB_Save". Es besteht die Möglichkeit, dass diese Dateien in eine andere SQL Server-Installation importiert und erneut mit DBCC CHECKDB überprüft werden können. Es ist keine Best Practice, beschädigte Datenbankdateien beim Troubleshooting zu löschen.
Finden Sie heraus, wo die temporären MSDB-Datenbankdateien gespeichert sind, und legen Sie eine Kopie davon wieder in unserem standardmäßigen SQL Server-Datenbankverzeichnis ab:
Endgültiger Speicherort für die temporären Dateien der MSDB-Datenbank; zurück im Standard-Datenverzeichnis von C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA.
Starten Sie nach dem Ersetzen der MSDB-Datenbankdateien den SQL Server-Dienst.
Betroffene Produkte
Microsoft Windows Server 2016, Microsoft Windows Server 2019, Microsoft Windows Server 2022, Microsoft Windows Server 2025