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).
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).
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.
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).
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.
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.