Wie behebt man den Fehler “Die Datenbank kann nicht wiederhergestellt werden, da das Protokoll nicht wiederhergestellt wurde”?
Zusammenfassung: Steckt Ihre SQL Server-Datenbank im Zustand RESTORING fest und gibt die Fehlermeldung 'Die Datenbank kann nicht wiederhergestellt werden, da das Protokoll nicht wiederhergestellt wurde' zurück. In diesem Beitrag erfahren Sie die möglichen Gründe für diesen SQL Server-Fehler und die Lösungen, um ihn zu beheben. Außerdem erfahren Sie mehr über andere Probleme, die während des Wiederherstellungsprozesses auftreten können. Außerdem erfahren Sie etwas über ein fortschrittliches SQL-Wiederherstellungstool, mit dem Sie die Datenbank ohne Datenverlust wiederherstellen können.
Wenn Sie versuchen, eine SQL Server-Datenbank wiederherzustellen, kann es vorkommen, dass die Datenbank im Status “Wiederherstellen” stecken bleibt und die folgende Fehlermeldung anzeigt:
Msg 4333, Ebene 16, Zustand 1, Zeile 1
Die Datenbank kann nicht wiederhergestellt werden, da das Protokoll nicht wiederhergestellt wurde.
Msg 3013, Ebene 16, Zustand 1, Zeile 1
RESTORE DATABASE wird abnormal beendet.
Wodurch wird der Fehler verursacht?
Es gibt keine bekannten Gründe, die diesen Fehler besonders hervorrufen. Der Fehler kann jedoch aus einem der folgenden Gründe auftreten:
- Ihre SQL Server-Instanz wurde während der Wiederherstellung von Transaktionsprotokollsicherungen getrennt.
- Der Wiederherstellungsprozess wurde abgebrochen.
- Während der Wiederherstellung der Datenbank ging dem Server der Speicherplatz aus.
Wie kann der Fehler behoben werden?
Hinweis: Bevor Sie fortfahren, stellen Sie sicher, dass der Server über ausreichend Speicherplatz verfügt, und versuchen Sie dann, die Datenbank wiederherzustellen. Wenn Sie keine Probleme mit dem Speicherplatz haben, befolgen Sie die unten beschriebene Lösung.
Um das Problem zu beheben, versuchen Sie, die problematische Datenbank zu löschen und sie wiederherzustellen. Führen Sie dazu im Abfragefenster von SQL Server Management Studio (SSMS) Folgendes aus:
Hinweis: Wenn Sie die Datenbank nicht löschen können, versuchen Sie, die Datenbank mit der gespeicherten Prozedur sp_detach_db zu entfernen. Wenn die gespeicherte Prozedur den Fehler “database is in use” zurückgibt, können Sie den Befehl dbcc detachdb verwenden, um die Datenbank zu entfernen. Dabei ist jedoch Vorsicht geboten, da es sich um einen undokumentierten Befehl handelt.
USE [master]
GO
– Erstellen Sie die Datenbank erneut mit demselben Namen wie die ursprüngliche Datenbank
CREATE DATABASE [datenbank_name];
– Wiederherstellung der Datenbank mit den üblichen Sicherungsskripten
RESTORE DATABASE datenbank_name
FROM DISK = ‘Pfad der .bak-Datei eingeben’
MIT ERHOLUNG
Hinweis: Wenn Sie mehrere Datenbankdateien wiederherstellen müssen, führen Sie den Befehl RESTORE mit der Option WITH NORECOVERY aus. Für die letzte Datenbankdatei führen Sie den RESTORE-Befehl WITH RECOVERY aus.
Was ist zu tun, wenn auf die Datenbank nicht mehr zugegriffen werden kann?
Wenn Sie die Datenbank wiederherstellen können, sie aber nicht mehr zugänglich und als SUSPECT gekennzeichnet ist, müssen Sie die Datenbank reparieren. Beachten Sie, dass Sie eine SUSPECT-Datenbank nicht reparieren können. Zunächst müssen Sie die Datenbank zugänglich machen, indem Sie sie in den EMERGENCY-Modus versetzen. Führen Sie dazu den folgenden Befehl aus:
ALTER DATABASE datenbank_name SET EMERGENCY
Sobald die Datenbank zugänglich ist, ist es wichtig, dass Sie exklusiven Zugriff auf die Datenbank haben. Setzen Sie also den Datenbankstatus auf den Modus SINGLE_USER und führen Sie DBCC CHECKDB mit der Option “REPAIR_ALLOW_DATA_LOSS” aus.
ALTER DATABASE datenbank_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CHECKDB (‘datenbank_name’,REPAIR_ALLOW_DATA_LOSS)
Danach versetzen Sie die Datenbank wieder in den MULTI_USER-Modus, indem Sie den folgenden Befehl ausführen:
ALTER DATABASE datenbank_name SET MULTI_USER
Lesen Sie im Detail: Wie kann man MS SQL-Datenbanken aus dem verdächtigen Modus wiederherstellen?
Aktualisieren Sie die Datenbank und prüfen Sie, ob Sie auf sie zugreifen können.
Wenn die Datenbank immer noch unzugänglich ist und Sie einen Datenverlust vermeiden müssen, verwenden Sie ein SQL-recovery tool, das die Datenbank wiederherstellen kann, während die Daten intakt bleiben. Sie können Stellar Repair for MS SQL verwenden, um die Datenbank (MDF)-Datei zu reparieren und sie in ihrem ursprünglichen Zustand wiederherzustellen. Außerdem hilft die Software bei der Wiederherstellung der Datenbank mit 8-facher Geschwindigkeit, indem sie Ihnen erlaubt, mehrere (bis zu 8 Tabellen) gleichzeitig zu speichern.
Die Software kann auch dabei helfen, gelöschte Datensätze aus einer SQL Server-Datenbank wiederherzustellen. Darüber hinaus können Sie eine Vorschau der reparierten Komponenten anzeigen, bevor Sie sie in einer bestehenden oder neuen Datenbank oder in anderen Dateiformaten (CSV, HTML oder XLS) speichern.
Schlussfolgerung
Wenn Sie die Fehlermeldung “Die Datenbank kann nicht wiederhergestellt werden, da das Protokoll nicht wiederhergestellt wurde” erhalten, kann es helfen, die Datenbank zu löschen und sie aus der Sicherung wiederherzustellen, um den Fehler zu beheben. Wenn die Wiederherstellung fehlschlägt oder die Datenbank unzugänglich geworden ist, versuchen Sie, die Datenbank mit DBCC CHECKDB und dem Befehl REPAIR_ALLOW_DATA_LOSS zu reparieren. Wenn dies nicht hilft, können Sie Stellar Repair for MS SQL verwenden, um Ihre Datenbank zu reparieren und wiederherzustellen.