Suchen

SQL-Backups automatisieren Microsoft SQL Server 2019 sichern und wiederherstellen

| Autor / Redakteur: Thomas Joos / Dr. Jürgen Ehneß

Wer SQL-Server verwaltet, muss sich zwangsläufig auch mit der Datensicherung auseinandersetzen. Dabei reicht es nicht aus, den Server einfach an das Backup anzubinden. Es gibt noch mehr Möglichkeiten, die wir in diesem Beitrag durchleuchten.

Firma zum Thema

Für die Sicherung der Daten eines SQL-Servers reicht die Anbindung ans Backup nicht aus.
Für die Sicherung der Daten eines SQL-Servers reicht die Anbindung ans Backup nicht aus.
(Bild: ©BigNazik - stock.adobe.com)

Microsoft empfiehlt, Datenbanken immer online zu sichern, also nicht erst die Datenbanken herunterzufahren und danach die Datenbankdateien zu sichern. SQL Server 2019 verfügt, wie die Vorgänger auch, über interne Möglichkeiten zur Datensicherung. Mitglieder der Serverrolle „sysadmin“ und der Datenbankrollen „db_owner“ und „db_backupoperator“ dürfen standardmäßig Datenbanken nutzen und Backup-Database- und Backup-Log-Befehle verwenden.

Bildergalerie
Bildergalerie mit 11 Bildern

Einstieg in die Datensicherung in SQL Server 2019

Über einen Rechtsklick auf Datenbanken kann mit „Tasks\Sichern“ eine Sicherung für eine Datenbank durchgeführt werden. Auf dem gleichen Weg können Datenbanken auch wiederhergestellt werden. Das Wiederherstellungsmodell der einzelnen SQL-Datenbanken auf dem Server können mit einer SQL-Abfrage angezeigt werden:

SELECT name, recovery_model, recovery_model_desc FROM sys.databases;

Ein Wiederherstellungsmodell ist eine Datenbankeigenschaft. Über den Assistenten können die Daten entweder auf einem Datenträger oder in einer URL gesichert werden. Über die Möglichkeit zur Anbindung der Sicherung an eine URL lassen sich SQL-Datenbanken auch zu Microsoft Azure sichern. Das hilft zum Beispiel bei der Migration. Im Rahmen der Datensicherung kann ausgewählt werden, ob das Backup vollständig oder differenziell sein soll oder ob nur die Transaktionsprotokolle gesichert werden sollen.

Neben der Möglichkeit zur Datensicherung mit der grafischen Oberfläche kann auch ein TSQL-Befehl zur Sicherung verwendet werden. Das ermöglicht auch die Sicherung über ein Skript. Ein Befehl dazu kann folgendermaßen aussehen:

BACKUP DATABASE <Datenbankname> TO DISK = '<Pfad und Dateiname>'

Um die Sicherung der Transaktionsprotokolle durchzuführen, verwenden Sie zum Beispiel folgenden Befehl:

BACKUP LOG <Datenbankname> TO DISK = '<Pfad und Dateiname.bak>'

Wird die grafische Oberfläche zur Sicherung genutzt, sollte bei „Sicherungstyp“ möglichst eine vollständige Sicherung genutzt werden, damit alle Daten in der Wiederherstellungsdatei enthalten sind. Soll die Sicherung auch die Transaktionsprotokolle der Datenbank berücksichtigen, muss die Option „Vollständig“ bei „Wiederherstellungsmodell“ gesetzt sein. Die Einstellungen können mit T-SQL ausgelesen werden.

Transaktionsprotokoll bei beschädigten Datenbanken sichern

Ist eine Datenbank beschädigt, kann es sinnvoll sein, die Transaktionsprotokolle zu sichern, bevor mit der Wiederherstellung der Datenbank begonnen werden kann:

  • Der Start der Sicherung entspricht der herkömmlichen Datensicherung. Stellen Sie sicher, dass das Wiederherstellungsmodell „Vollständig“ ausgewählt ist.
  • Wählen Sie bei „Sicherungstyp“ die Option „Transaktionsprotokoll“ aus.
  • Lassen Sie „Kopiesicherung“ deaktiviert.
  • Legen Sie den Typ für das Sicherungsziel fest.
  • Wählen Sie auf „Medienoptionen“ eine Option im Bereich „Medium überschreiben“ aus.

Zur Wiederherstellungszeit wird bei „Datenbank wiederherstellen“ der Typ einer Sicherung des Protokollfragments als Transaktionsprotokoll (Copy Only) angezeigt.

Windows-Server-Sicherung nutzen

Es besteht auch die Möglichkeit, den kompletten Server mit der Windows-Server-Sicherung zu sichern und dabei auch die SQL-Server-Datenbanken zu berücksichtigen. Nach einem vollständigen Backup des Servers können einfach inkrementelle Sicherungen auf Blockebene erstellt werden. Mit der Windows-Server-Sicherung lassen sich vollständige Server (alle Volumes), ausgewählte Volumes oder der Systemstatus sichern. Anschließend können Sie einzelne Volumes, Ordner, Dateien, bestimmte Anwendungen und den Systemstatus wiederherstellen.

Sicherungen automatisieren

Mit dem SQL Server Management Studio und T-SQL-Befehlen sowie dem SQL-Server-Agent können Sicherungen mit Bordmittel auch weitgehend automatisiert werden. Damit Sicherungen mit SQL-Server-Agent automatisiert werden können, muss der Dienst auf dem SQL-Server zunächst konfiguriert und gestartet werden. Dazu steht zum Beispiel das Verwaltungstool „SQL Server Configuration Manager“ zur Verfügung, das zusammen mit SQL Server 2019 installiert wird.

Wenn der Agent gestartet ist, können über das SQL Server Management Studio Aufträge über das Kontextmenü des Agenten erstellt werden. Der erfolgreiche Start ist im SQL Server Management Studio zu erkennen. Hierüber lassen sich auch Datenbanken sichern. Aufträge können zu bestimmten Zeitpunkten oder bei bestimmten Ereignissen starten, zum Beispiel beim Starten eines Dienstes.

Beim Erstellen eines neuen Auftrags zur Sicherung einer Datenbank wird zunächst bei „Allgemein“ der Name des Auftrags eingegeben und bei „Kategorie“ die Option „Datenbankwartung“ ausgewählt. Bei „Schritte“ wird anschließend festgelegt, welche Befehle gestartet werden sollen. Der Befehl kann zum Beispiel folgendermaßen aussehen:

BACKUP DATABASE [Einkauf] TO DISK = N'C:\Backup\backup.bak' WITH NOFORMAT, NOINIT, NAME = N'Backup'

Hier lassen sich auch mehrere Schritte definieren. Über „Analysieren“ wird überprüft, ob der Befehl korrekt eingegeben wurde und generell funktioniert. In einem weiteren Schritt kann eine Datensicherung auch validiert werden. Das geht zum Beispiel mit dem Befehl:

RESTORE VERIFYONLY FROM DISK = 'C:\Backup\backup.bak'

Wenn die einzelnen Schritte definiert wurden, kann bei „Zeitpläne“ definiert werden, wann die Aufgabe starten soll. Über das Kontextmenü eines Auftrags kann dieser mit „Auftrag starten bei Schritt …“ manuell gestartet werden. Aufträge können auch als Skript formatiert und angezeigt werden. Dazu wird der Auftrag mit der rechten Maustaste ausgewählt und die Option „Skript für Auftrag als\CREATE in\Neues Abfrage-Editor-Fenster“ festgelegt.

Bildergalerie
Bildergalerie mit 11 Bildern

(ID:46854850)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist