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.
- Beliebige SQL Server-Version
- SQL Server Management Studio (SSMS)
- Stellar Repair for MS SQL Installationsprogramm
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
- Öffnen Sie SSMS, klicken Sie mit der rechten Maustaste auf Datenbanken und dann auf Aufgaben > Sichern
- Je nach Anforderung können Sie eine Vollsicherung durchführen. Wählen Sie dazu im Abschnitt Source unter “Wiederherstellungsmodell” die Option FULL. Geben Sie anschließend den Pfad an, in dem Sie die Sicherung Ihrer Datenbank speichern möchten.
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:
- Klicken Sie auf die Schaltfläche Script, um das Sicherungsskript in einem neuen Abfragefenster zu erstellen, und speichern Sie es dann in einer neuen Datei oder in der Zwischenablage. Sie können auch einen geplanten Sicherungsauftrag erstellen.
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
- Wenn Sie täglich ein Backup erstellen müssen, ist es möglich, die Skriptaktion in einem Job zu speichern:
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.
- Geben Sie den ‘Namen’ und den ‘Besitzer’ für den Job an.
- Der Step des Jobs enthält das T-SQL-Skript, das die Sicherung ausführt:
- Standardmäßig wird die Sicherung in der Master-Datenbank ausgeführt und Sie können den T-SQL-Code ändern:
- Sie können den Job auch so planen, dass er zu einer bestimmten Uhrzeit und an einem bestimmten Tag ausgeführt wird. Zum Beispiel können Sie die Sicherung täglich oder monatlich um 9:00 Uhr ausführen (Beispiel)
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:
- Klicken Sie in SSMS mit der rechten Maustaste auf Datenbanken und wählen Sie dann die Option Datenbank wiederherstellen:
- Sie im Fenster “Datenbank wiederherstellen” die Datenbank, die Sie wiederherstellen möchten, und die verfügbare Sicherung:
- Wählen Sie auf der Seite ‘Optionen’ den Wiederherstellungszustand als RESTORE WITH RECOVERY:
- Zusätzlich können Sie T-SQL anstelle der SSMS-GUI verwenden. Dies ist nützlich, wenn Sie die Aufgaben automatisieren möchten:
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 Server–Datenbank erklärt. Wenn Sie Fragen haben, können Sie diese gerne im Kommentarfeld unten stellen.