Backup wiederherstellen
Beim Wiederherstellen (Restore) von Microsoft SQL Datenbanken gibt es verschiedene Möglichkeiten.
Soll das Backup auf einem anderen Server wiederhergestellt werden, so sind das Vollbackup und alle darauf folgenden gesicherten Transaktionslogs in das Backupverzeichnis des Zielservers zu übertragen. Anschließend kann wie unten gezeigt das Backup wiederhergestellt werden.
Restore eines Vollbackups
Dies ist der einfachste Fall, eine Datenbank wird einfach aus einer .bak Datei wiederhergestellt. Dies geht einfach und schnell.
- Microsoft SQL Server Management Studio öffnen und in Server einloggen
- Rechtsklick auf Databases -> Restore Database...
- Danach folgende Schritte umsetzen (1 - 5)
- im Reiter General unter Source von Database: auf Device: wechseln
- die 3 Punkte auswählen
- mit Add den Dialog zum Auswählen der Backup Datei öffnen
- den Order der Backups auswählen
- die Backup Datei auswählen und mit OK bestätigen
- Es wird nun ein Backup media: angezeigt, dieses nochmal mit OK bestätigen.
- Nun wird ein Restore Punkt angezeigt, diesen nur noch mit OK bestätigen und danach steht die Datenbank in der Version zur Verfügung.
Restore eines Vollbackups mit Logs
Dieser Fall ist aufwendiger als der einfache Restore eines Vollbackups, aber es kann fast auf die Minute sogar Sekunde genau wiederhergestellt werden. Bei dieser Art des Restores wird zuerst ein Vollbackup eingespielt, danach werden dann die Transaktionslogs eingespielt. Wird z. B. 1x täglich um 20 Uhr ein Vollbackup erstellt und alle 30 Minuten werden die Log Dateien gesichert und abgeschnitten, so kann beispielsweise die Datenbank von 15:30 Uhr wiederhergestellt werden. Eventuell können sogar die Änderungen auf die Minute z. B. 15:35 Uhr eingespielt werden, sofern der Zeitpunkt exakt bekannt ist und das Transaktionslog nicht beschädigt ist, wie im Fall von gelöschten Datensätzen (denn diese sind dann ordnungsgemäß ins Transaktionslog geschrieben).
Egal ob das Backup über das Management Studio oder T-SQL eingespielt wird, in beiden Fällen muss das _Recovery Model_ der Datenbank auf _Simple_ gesetzt werden.
Mit T-SQL
- Damit das Vollbackup + Logs zurückgespielt werden kann, ist das Recovery Model der Datenbank auf Simple zu setzen.
USE [master]; ALTER DATABASE [AdventureWorks2019] SET RECOVERY SIMPLE;
- Nun kann das Vollbackup eingespielt werden, dabei ist insbesondere der Parameter
WITH NORECOVERY
wichtig, da dieser dafür sorgt, dass die Datenbank im Wiederherstellungsmodus bleibt:RESTORE DATABASE [AdventureWorks2019] FROM DISK = '/backup/FULL/AdventureWorks2019_20230419_171225.bak' WITH NORECOVERY
- Nun werden der Reihe nach alle gesicherten Transaktionslogs eingespielt:
RESTORE LOG [AdventureWorks2019] FROM DISK = '/backup/LOG/AdventureWorks201920230419_171315.trn'
WITH NORECOVERY
Dabei ist wichtig, dass solange noch weitere Log Dateien folgen, der Parameter `WITH NORECOVERY` mit übergeben wird. 4. Die letzte Log Datei wird ohne den `WITH NORECOVERY` Parameter eingespielt, damit der Wiederherstellungsprozess ordnungsgemäß beendet wird:
sql
RESTORE LOG [AdventureWorks2019]
FROM DISK = '/backup/LOG/AdventureWorks201920230419_171441.trn'
```
Mit Management Studio
Tatsächlich erfolgt das Wiederherstellen mittels Management Studio genauso wie bei Restore eines Vollbackups. Es ist nur vorher das Recovery Model zu ändern.
Keine Kommentare