Logo faq-o-matic.net
Logo faq-o-matic.net

SQL Server: Backups testen

von veröffentlicht am23. Januar 2018, 06:22 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Datensicherung, PowerShell, SQL Server, Wiederherstellung   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Oder: Vertrauen ist gut, Kontrolle ist besser!

Welcher Windows-Administrator kennt diese Situation nicht? Man ist zwar eigentlich kein Datenbankadministrator (DBA), aber zur der Anwendung gehört halt ein SQL Server, und einen echten DBA gibt es nun mal nicht. Also muss man sehen, dass die Datenbank läuft. Genauso wichtig wie ein laufender Server ist gerade bei Datenbanken, dass man die Daten im Notfall auch wiederherstellen kann. Dabei muss man immer wieder feststellen, dass das Backup noch recht gut überwacht und kontrolliert wird, aber die Wiederherstellung so gut wie nie getestet ist.

Es gilt der Spruch:

Was interessiert mich das erfolgreiche Backup, der erfolgreiche Restore ist mir viel wichtiger!

Und letztendlich trifft dies genau den Kern des Problems. Viele (Teilzeit-) Datenbankadministratoren verlassen sich zu sehr auf die Meldung „Backup erfolgreich“, testen aber zu selten bis niemals ob auch die Wiederherstellung aus dem Backup funktioniert. Eine regelmäßige händische Kontrolle ist aufwendig, zeitintensiv und von Spaß wollen wir erst gar nicht reden. Aber es gibt einen einfachen und schnellen Weg den Restore über die Powershell zu testen.

DBATOOLS

Gerade für Nicht-DBAs gibt es ein Powershell-Modul mit dem Namen DBAtools, welches einem viel Arbeit abnehmen kann. Weitere Informationen zu dem Modul sowie Download-Möglichkeiten gibt es auf der Projekt Seite unter www.dbatools.io

Das Module kann auf einem PC mit Internetzugang ganz leicht über den Powershell Befehl

Install-module dbatools

installiert werden. Um das Modul zu nutzen, ist keine Installation oder Änderung am Server notwendig. In der Regel muss nur der Port des SQL Servers (Standmäßig 1433) von dem Administrations-PC aus erreichbar sein.

Für den Recovery Test steht das folgende Cmdlet zur Verfügung:

Test-DbaLastBackup -SqlInstance SERVER -Database DBNAME

Das Cmdlet stellt nun eine Verbindung zu dem SQL Server „SERVER“ her und führt eine Wiederherstellung der Datenbank durch. Die Datenbank wird mit einem anderen Namen und anderen Dateinamen aus den Backupdaten wiederhergestellt und ein DBCC CHECKDB durchgeführt. Somit besteht keine Gefahr für die produktiven Datenbanken während des Tests. Nachdem die Wiederherstellung und der Datenbankcheck abgeschlossen sind, wird die Datenbank automatisch wieder gelöscht. Zudem ist es möglich, mehrere Datenbanken (oder auch alle) mit einem Befehl zu testen und den Testlauf auf einem separaten Server durchzuführen.

Test-DbaLastBackup -SqlInstance QUELLSERVER -Destination ZIELSERVER | ogv

Durch diesen Befehl werden alle Datenbanken vom Quellserver auf dem Zielserver testweise wiederhergestellt und geprüft. Das Ergebnis wird in einem separaten Fenster als Liste ausgegeben.

clip_image002

Im Beispiel wurden die Datenbanken einer anderen Instanz wiederhergestellt und geprüft. Man kann gut erkennen, dass der Restore von allen Datenbanken funktioniert hat. Lediglich der Check der Master-DB kann auf Grund von technischen Einschränkungen nicht durchgeführt werden.

Neben der Information, ob der Restore überhaupt funktioniert, erhält man auch Informationen zum Zustand der Datenbank und wie lange die Wiederherstellung gedauert hat. Diese Information kann wichtig werden, wenn es um vertragliche Wiederherstellungszeiten aus SLA (Service-Level-Agreement) geht. Kann ich die vereinbarten Zeiten überhaupt einhalten oder dauert der reine Restore schon länger als vereinbart? 

Speicheranforderung

Da alle Datenbanken nach der Prüfung wieder gelöscht werden, braucht man nur so viel Festplattenspeicher wie die größte Datenbank belegt.

Weitere Informationen zum Cmdlet Test-DbaLastBackup findet man unter https://dbatools.io/functions/test-dbalastbackup/

© 2005-2017 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!