Wie man MS SQL Server Restore mit RECOVERY und Restore mit NORECOVERY durchführt

Summary: In diesem Blog wird beschrieben, wie Sie eine Datenbank mit den Optionen RECOVERY und NORECOVERY wiederherstellen. Die Wiederherstellung der db mit der Option RECOVERY ist die Standardoption für Benutzer mit FULL-Backup. Wenn Sie jedoch verschiedene Arten von Backups haben (differentiell, transaktional usw.), müssen Sie möglicherweise die Option NORECOVERY verwenden, um die Backups zu kombinieren. Sie können auch versuchen, die SQL-Datenbank mit der Software Stellar Repair for MS SQL in ihrer ursprünglichen Form wiederherzustellen. Laden Sie die Software-Demoversion herunter, um eine Vorschau der wiederherstellbaren db-Objekte zu erhalten.

Um Datenverluste zu verhindern und eine SQL Server-Datenbank vor einer Katastrophe wiederherzustellen, muss ein DBA Datenbank-Backups wiederherstellen. Wenn es um die Wiederherstellung einer Datenbank aus einem Backup geht, gibt es zwei Hauptoptionen, die der DBA verwenden kann: ‘Mit RECOVERY’ und ‘Mit NORECOVERY’.

Wie stellt man eine SQL-Datenbank mit RECOVERY und mit NORECOVERY wieder her?

Anforderungen

Bevor Sie eine Wiederherstellung der SQL Server-Datenbank mit den Optionen RECOVERY und NORECOVERY durchführen, müssen Sie Folgendes auf Ihrem System installiert haben.

Erste Schritte

Bevor Sie die Datenbank wiederherstellen, müssen Sie zuerst ein Backup der Datenbank erstellen. Sie können das Backup mit SSMS oder T-SQL erstellen.

Schritte zum Erstellen eines SQL-Datenbank-Backups mit SSMS

Hinweis: Sie können auch andere Arten von Backups durchführen, z. B. differenzielle und transaktionale Backups.

Schritte zum Erstellen einer SQL-Datenbanksicherung mit T-SQL in SSMS

Sie können ein T-SQL-Sicherungsskript erstellen, um eine Sicherungsaufgabe mit SSMS durchzuführen. Führen Sie dazu die folgenden Schritte aus:

Um den Sicherungsprozess zu automatisieren, anstatt ihn manuell zu konfigurieren, führen Sie den folgenden T-SQL-Code aus:

BACKUP DATABASE [sales] TO DISK = N'c:\sql\sales.bak' WITH NOFORMAT, NOINIT, NAME = N'earnings-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

Mit dieser Option können Sie die Sicherung in einem Job erstellen. Ein Job ist eine Gruppe von Operationen, die Sie im SQL Server Agent ausführen können. Der SQL Server Agent ist eine SQL Server-Komponente mit einem eigenen Dienst, der zur Ausführung von Jobs verwendet wird.

Der Code speichert die Sicherung im Laufwerk c:\sql und der Dateiname ist sales.bak. Die zu sichernde Datenbank ist die Datenbank “sales”. Weitere Informationen zu den anderen Argumenten finden Sie unter  diesem Link.

SQL Server-Wiederherstellung mit Wiederherstellung und mit NORECOVERY

Lassen Sie uns diese beiden Optionen im Detail besprechen:

Option RECOVERY

Wiederherstellung ist die Standardoption. Diese Option führt ein Rollback und ein Rollforward durch. Verwenden Sie diese Option, wenn Sie eine Datenbank aus einer FULL-Sicherung wiederherstellen müssen. Führen Sie die folgenden Schritte aus, um eine Datenbank mit Wiederherstellung in SQL Server 2008 und höheren Versionen wiederherzustellen:

RESTORE DATABASE [earnings] FROM DISK = N'c:\sql\earnings.bak' WITH FILE = 1, NOUNLOAD, STATS = 5, RECOVERY GO

In diesem Beispiel ist es nicht notwendig, das RECOVERY-Argument zu verwenden, das die Standardeinstellung ist, aber ich habe es hinzugefügt, um den Unterschied zu den anderen Optionen zu verstehen.

Mit der Option NORECOVERY

Verwenden Sie die Option NORECOVERY, wenn Sie mehrere Backups wiederherstellen müssen. Sie versetzt die Datenbank in den Zustand “RESTORING”, um zu verhindern, dass Benutzer auf die Datenbank zugreifen, solange keine weiteren Sicherungen wiederhergestellt werden. Wiederherstellen mit NORECOVERY wird zum Wiederherstellen jeder Datenbanksicherung außer der letzten verwendet. Die letzte Sicherung kann mit der Option RECOVERY wiederhergestellt werden, um die Datenbank für die Verwendung online zu bringen.

Wenn Sie z. B. eine vollständige Datenbanksicherung gefolgt von einer Transaktionsprotokollsicherung wiederherstellen müssen, wird die vollständige Sicherung mit dem NORECOVERY-Argument und anschließend die Protokollsicherung mit Recovery wiederhergestellt. So wird es gemacht:

RESTORE DATABASE [earnings] FROM DISK = N'c:\sql\earnings.bak' WITH FILE = 2, NORECOVERY, NOUNLOAD, STATS = 5
RESTORE LOG [earnings] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\earnings_LogBackup_2018-12-21_12-24-25.bak' WITH FILE = 1, NOUNLOAD, STATS = 5, RECOVERY

Hinweis: In der obigen Abfrage stellt der erste Befehl die db mit der Option NORECOVERY wieder her, und der zweite Befehl stellt die Protokollsicherung mit der Option RECOVERY wieder her.

Andere Optionen zum Wiederherstellen der Daten

Wenn Sie kein Backup haben oder wenn es beschädigt ist, können Sie SQL Recovery-Software wie Stellar Repair for MS SQL verwenden, um Ihre Daten wiederherzustellen. Die Software hilft dabei, eine beschädigte (korrupte) SQL-Datenbank zu reparieren und sie in ihren ursprünglichen Zustand zurückzusetzen. Sie können die Software von hier herunterladen:

Um diese Software zu verwenden, müssen Sie nur die MDF-Datei auswählen und sie reparieren. Sobald die Datei repariert ist, können Sie sie verwenden, um Ihre SQL-Datenbank wiederherzustellen.

Detaillierte Schritte zur Wiederherstellung der Datenbank mit der Software Stellar Repair for MS SQL finden Sie unter diesem Link.

Fazit

In diesem Blog wurden die Schritte zur manuellen Erstellung von Backups mithilfe von SSMS und T-SQL-Code beschrieben. Es wurde auch der Prozess der Wiederherstellung einer MS SQL-Datenbank mit Hilfe der Optionen RECOVERY und NORECOVERY beschrieben. Zusätzlich wurde die Verwendung der Stellar Repair for MS SQL Software zur Reparatur einer beschädigten SQL ServerDatenbank erklärt. Wenn Sie Fragen haben, können Sie diese gerne im Kommentarfeld unten stellen.

Related Post