it-swarm.com.de

SQL Server-Datenbanken stecken im Wiederherstellungsstatus fest

Ich habe einen Sharepoint-Server. Wir hatten ein Problem mit unserem Backup-Tool und jetzt stecken einige meiner Datenbanken im Wiederherstellungszustand fest!

Image showing restoring databases

Ist es möglich, den Wiederherstellungsprozess zu stoppen? Und wie kann ich sicherstellen, dass die Datenbankintegrität nicht beeinträchtigt wurde?

87
Pooya Yazdani

Dies wird wahrscheinlich durch das Wiederherstellungsskript verursacht, das das WITH NORECOVERY Parameter, um die Datenbank für ein Transaktionsprotokoll vorzubereiten, das nach der Wiederherstellung angewendet wird.

Die Datenbank wartet jetzt auf die neueste Transaktionsprotokolldatei.

Du kannst entweder:

  1. Wenden Sie das neueste Transaktionsprotokoll an mit RESTORE LOG database_name FROM backup_device WITH RECOVERY; ... oder
  2. Stellen Sie die Datenbank erneut her, diesmal jedoch mit ... WITH RECOVERY; ... oder
  3. Erzwingen Sie den Wiederherstellungsmodus der Datenbank, indem Sie Folgendes ausführen: RESTORE DATABASE YourDb WITH RECOVERY;

Bevor Sie dies tun, stellen Sie bitte sicher, dass Sie die Auswirkungen dieser Optionen verstehen. Sie können Datenverlust verursachen, wenn Sie nicht vorsichtig sind.

Siehe dies für Details:

135
Thomas Kejser

Einfaches T-SQL-Skript zur Lösung dieses Problems:

schreiben Sie dieses Skript in das Fenster Neue Abfrage und führen Sie Folgendes aus:

RESTORE DATABASE [DataBase Name] WITH RECOVERY;
52
Sina

Wie wir wissen, ist die Standardoption für die Datenbankwiederherstellung die Wiederherstellung, mit der sichergestellt wird, dass die Datenbank verfügbar ist und nach Abschluss der Datenbankwiederherstellung online verwendet werden kann.

Beispiel :

RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO

Sehen wir uns die wichtigen Punkte zum Wiederherstellen ohne Wiederherstellung an.

  • Datenbank ist nicht verwendbar
  • Bleibt im Wiederherstellungsmodus
  • Die nächste Wiederherstellungssequenz kann durchgeführt werden
  • Rollt keine nicht festgeschriebenen Transaktionen zurück

Mit NoRecovery wiederherstellen

Diese Option wird insbesondere verwendet, wenn mehrere Sicherungen wiederhergestellt werden sollen. Wenn Sie den Wiederherstellungsbefehl mit der Option norecovery ausführen, bedeutet dies, dass die Datenbank erst dann für die Benutzer freigegeben wird, wenn die letzte Sicherung nacheinander wiederhergestellt ist. Bei der letzten Sicherung wird die Wiederherstellungsoption verwendet und die Datenbank wird online geschaltet.

Beispiel:

RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak' 
WITH NORECOVERY
GO

Und dann:

RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO
0
Priyanka

Ich hatte gerade diese Situation und die Heilung war ziemlich überraschend:

ALTER DATABASE DBName SET ONLINE;

Anscheinend hat die NetBackup-Wiederherstellung, die kaputt gegangen ist, einen seltsamen Zustand hinterlassen. Keine andere Lösung funktionierte (obwohl ich noch nicht versucht hatte, den SQL Server-Dienst neu zu starten)

Ich würde jedoch vorsichtig mit der Datenbank sein, da theoretisch, sobald eine Wiederherstellung startet und dann fehlschlägt, Sie möglicherweise Daten beschädigt haben. Ich werde die Datenbank sowieso nur wieder wiederherstellen, also ist es mir egal.

0
ErikE