SQL Server: Vollsicherung und Wiederherstellung

Bernd Jungluth, Horn und André Minhorst, Duisburg

Wer eine Access-Datenbank zum Speichern seiner Daten verwendet, hat bei der Sicherung leichtes Spiel: Er braucht einfach nur eine Kopie dieser Datenbank anzulegen. Bei SQL Server-Datenbanken ist dies etwas komplizierter. Wir können hier beispielsweise nicht einfach die Datenbankdateien kopieren, da der SQL Server normalerweise ständig darauf zugreift. Welche Schritte zum Anlegen des Backups einer SQL Server-Datenbank nötig sind, zeigen wir in diesem Beitrag. Außerdem schauen wir uns an, wie wir die Datenbank auf Basis der Sicherung wiederherstellen können.

Backup über das SQL Server Management Studio

Zum Erstellen eines Backups einer SQL Server-Datenbank ist das SQL Server Management Studio die erste Adresse. Hier finden wir über die Benutzeroberfläche alle notwendigen Elemente.

Vollsicherung über Nacht

Ziel dieses Beitrags ist es, den SQL Server so zu programmieren, dass er jede Nacht eine Vollsicherung einer Datenbank herstellt. Damit stellen wir sicher, dass die Daten bis zur vorherigen Nacht im Falle eines Datenverlustes wiederherstellbar sind. Es gibt noch andere Sicherungsmodelle, mit denen wir in kleineren Zeitabständen Sicherungen durchführen, die gegebenenfalls auch nicht als Vollsicherung, sondern als differenzielle Sicherung erledigt werden. Das ist jedoch nicht Ziel dieses Beitrags.

Recovery Model einstellen

Wir gehen also davon aus, dass wir mit dem Verlust der Daten des vorherigen Tages leben können. In diesem Kontext stellen wir das Recovery Model für die Datenbank auf einen Wert ein, mit dem die Größe der Datei zum Speichern der Transaktionen klein gehalten wird – damit ist die .ldf-Datei der Datenbank im Gegensatz zur .mdf-Datei gemeint.

Das Protokollieren von Transaktionen sorgt dafür, dass Transaktionen rückgängig gemacht werden können, solange diese noch nicht abgeschlossen sind. Bei der Einstellung des Recovery Models auf Simple werden die Transaktionsprotokolle für erledigte Transaktionen gelöscht. Das ist für unser Ziel, eine Wiederherstellung der Daten bis zur vorherigen Nacht zu gewährleisten, die optimale Einstellung, da so keine unnötigen Daten im Backup gesichert werden.

Diese Einstellung nehmen wir in den Optionen der Datenbank vor. Dazu wählen wir aus dem Kontextmenü des jeweilige Datenbankeintrags den Befehl Properties aus und wechslen dort zur Seite Options. Hier finden wir die Option Recovery model, die wir auf Simple einstellen (siehe Bild 1).

Einstellen des gewünschten Recovery models

Bild 1: Einstellen des gewünschten Recovery models

Backup anlegen

Wenn wir ein Backup von einer bestimmten Datenbank machen wollen, öffnen wir den Objekt-Explorer und navigieren zu der entsprechenden Datenbank.

Anschließend klicken wir mit der rechten Maustaste auf den Datenbanknamen, hier Experimente, und wählen den Eintrag Tasks|Back Up… aus (siehe Bild 2).

Aufrufen des Back Up-Dialogs

Bild 2: Aufrufen des Back Up-Dialogs

Damit öffnen wir den Dialog Back Up Database – [Datenbankname] (siehe Bild 3). Ein Klick auf die Schaltfläche OK in diesem Dialog führt übrigens immer zur Ausführung des Backups. Wenn Sie also aktuell kein Backup erstellen möchten, sondern wie nachfolgend gezeigt nur das T-SQL-Skript für ein solches zusammenstellen wollen, verlassen Sie den Dialog am einfachsten mit der Cancel-Schaltlfäche.

Der Back Up-Dialog

Bild 3: Der Back Up-Dialog

Dieser zeigt im Bereich General an, welche Datenbank gesichert werden soll, hier Experimente. Wir wollen ein volles Backup erstellen (Backup type erhält den Wert Full). Und wir wollen das Backup auf der Festplatte anlegen, also behalten wir unter Destination den Wert Disk für Back up to bei (siehe Bild 4).

Ziel des Backups eingeben

Bild 4: Ziel des Backups eingeben

Darunter klicken wir auf die Schaltfläche Add, um den Speicherort für das Backup zu definieren. Es erscheint ein Dialog namens Select Backup Destination (siehe Bild 5). Hier wählen wir die Option File name aus und klicken auf die Schaltfläche rechts mit den drei Punkten.

Auswählen des Verzeichnisses und des Dateinamens für das Backup

Bild 5: Auswählen des Verzeichnisses und des Dateinamens für das Backup

Es erscheint ein weiterer Dialog, mit dem wir das Zielverzeichnis auswählen und den Dateinamen eingeben können.

Als Zielverzeichnis wird standardmäßig der folgende Ordner verwendet:

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\

Backup regelmäßig ausführen per SQL Server Agent

Damit haben wir den Speicherort für das Backup definiert und können uns darum kümmern, dass dieses regelmäßig ausgeführt wird. Dazu schließen wir die geöffneten Dialoge wieder und schauen uns an, ob der SQL Server Agent bereits läuft. Ist das nicht der Fall, sehen wir ein Icon wie in Bild 6 und starten diesen über den Kontextmenü-Eintrag Start. Die anschließende Meldung mit einer Rückfrage, ob der Dienst wirklich gestartet werden soll, beantworten wir mit Yes. Wenige Augenblicke später erscheint das Icon des Eintrags SQL Server Agent mit einem grünen Symbol, was den gestarteten Zustand zeigt.

Starten des SQL Server Agents

[

Bild 6: Starten des SQL Server Agents

Job erstellen

Danach öffnen wir erneut über den Kontextmenü-Eintrag Tasks|Backup den Dialog zum Einstellen der Backup-Einstellungen und wechslen zur Seite Media Options. Hier stellen wir nun ein, wir mit den vorherigen Backups umgegangen werden soll. Wir möchten einfach nur das vorherige Backup mit dem neuen Backup überschreiben und stellen dazu die Option Overwrite media auf Overwrite all existing backup sets ein (siehe Bild 7).

Überschreiben des Backups aktivieren

Bild 7: Überschreiben des Backups aktivieren

Job mit Backup-Skript erstellen

Wir bleiben in diesem Dialog und klicken oben auf den nach unten zeigenden Pfeil neben der Schaltfläche Script. Aus dem Menü wählen wir nun den Befehl Script Action to Job aus (siehe Bild 8).

Skript in Job schreiben

Bild 8: Skript in Job schreiben

Es erscheint ein neues Dialog namens New Job (siehe Bild 9). In diesem können wir den Namen des Jobs anpassen. Wichtiger ist jedoch, den Owner zu ändern. Aktuell ist der derzeitige Windows-Benutzer eingetragen.

Anlegen eines neuen Jobs

Bild 9: Anlegen eines neuen Jobs

Ist dieser jedoch einmal nicht mehr vorhanden, gibt es Probleme, weil der Besitzer des Jobs nicht mehr da ist. Also stellen wir den Besitzer mit der Eigenschaft Owner auf den Benutzer sa ein. Dazu klicken wir auf die Schaltfläche neben der Eigenschaft Owner.

Im nun erscheinenden Dialog Select Login klicken wir direkt auf Browse und öffnen so einen weiteren Dialog namens Browse for Objects.

Hier fügen wir dem Eintrag [sa] einen Haken hinzu und schließen den Dialog mit einem Klick auf OK wieder (siehe Bild 10).

Auswählen des Benutzers sa

Bild 10: Auswählen des Benutzers sa

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar