Sicherung der SQL Server-Datenbank



Automatische Sicherungen für SQL Server Express-Datenbanken

Die nachfolgende Anleitung beschreibt die automatisierte Sicherung von Microsoft SQL Server Express-Datenbanken. Behörden oder Unternehmen, die einen vollwertigen Microsoft SQL Server einsetzen, sollten die Datenbank über die internen Sicherungsfunktionen des SQL Server und einen festgelegten Zeitplan sichern. Lesen Sie dazu die Online-Dokumentation des Microsoft SQL Server.

 

Die Microsoft SQL Server Express-Edition ist ein leistungsstarkes Datenbankmanagementsystem. Mit der kostenlosen "Express-Edition 2008 R2" können bis zu 10 GB große Datenbanken verwaltet werden. Für eine MultiBaseCS-Datenbank sind diese Spezifikationen völlig ausreichend dimensioniert.

 

Dieser Edition fehlt jedoch der "SQL Server Agent", mit dem eine automatisierte Sicherung der Datenbank möglich ist. Daher muss diese Lücke mit dem Windows-eigenen Taskplaner und 2 Skripten geschlossen werden.

SQL-Sicherung mit Bordmitteln

Das folgende Skript sichert sowohl die Datenbank selbst als auch das Transaktionsprotokoll in jeweils eine Datei. Letzteres ist wichtig, falls das "Wiederherstellungsmodell" der Datenbank auf "Vollständig" steht. Wird in diesem Fall keine regelmäßige Transaktionsprotokollsicherung durchgeführt, kann die Festplatte volllaufen. Im Beispiel heißt die Datenbank "MultiBaseCS_DB".

 

hmtoggle_plus1SQL-Skript zur Sicherung der Datenbank

 

BACKUP DATABASE [MultiBaseCS_DB] TO DISK='D:\Backup\MultiBaseCS_DB_Sicherung.bak'

WITH INIT, NAME = N'MultiBaseCS_DB_Sicherung'

 

BACKUP LOG [MultiBaseCS_DB] TO DISK='D:\Backup\MultiBaseCS_DB_Log_Sicherung.bak'

WITH INIT, NAME = N'MultiBaseCS_DB_Log_Sicherung'

 

Die Option "WITH INIT" sorgt dafür, dass die Sicherungsdatei bei jedem Backup überschrieben wird. In der Datei ist so nur die letzte Sicherung enthalten. Den Befehl "BACKUP LOG..." übernehmen Sie nur dann in das SQL-Skript, wenn das Wiederherstellungsmodell nicht auf "Einfach" eingestellt ist.

 

Diese Datei wird gespeichert als "MultiBaseCS-Sicherung.sql".

 

Der folgende Code bildet die Batchdatei, die z.B. täglich mit der Windows Aufgabenplanung (Taskplaner) aufgerufen wird:

 

hmtoggle_plus1Batch-Datei zum Aufruf über die Windows Aufgabenplanung (Taskplaner)

 

@echo off

rem Ausführen eines Full Backup der MultiBaseCS-Datenbank

rem !! das Folgende ist eine einzige Zeile!

"C:\Programme\Microsoft SQL Server\100\Tools\binn\SQLCMD.EXE" -S DBSERVER\Instanz

   -E -i D:\Backup\MultiBaseCS-Sicherung.sql -o D:\Backup\BackupLog.txt

rem !! ab hier wieder normal

 

rem Zeitstempel erzeugen

for /f "tokens=1-4 delims=. " %%i in ("%date%") do (

  set day=%%i

  set month=%%j

  set year=%%k

)

 

for /f "tokens=1-4 delims=.:, " %%i in ("%time%") do (

 set hour=%%i

 set minute=%%j

 set second=%%k

 set hundredth=%%l

)

 

rem Log-Datei mit Zeitstempel umbenennen

ren D:\Backup\BackupLog.txt FullBackup-%year%-%month%-%day%-%hour%-%minute%.txt

 

Diese Batchdatei ruft das SQL-Sicherungsskript mit dem Hilfsprogramm sqlcmd.exe auf, das den SQL Server auf der Kommandozeile ansteuern kann. Der Datenbankserver trägt hier den Namen "DBSERVER". Ändern Sie diesen Textbaustein in den Namen Ihres Computers. Der Name der Instanz muss ebenfalls angegeben werden. Bei einer Standardinstallation heißt die Instanz "SQLExpress". Zur besseren Nachverfolgung schreibt die Batchdatei die Ausgaben des sqlcmd-Kommandos in eine Logdatei, die dann mit dem aktuellen Zeitstempel umbenannt wird. Speichern Sie die Batchdatei unter dem Namen "SQLBackup.cmd".

Aufruf der Batchdatei mit Hilfe der Windows-Aufgabenplanung (Taskplaner)

Die nachfolgende Anleitung beschreibt die Erstellung einer Aufgabe mit Hilfe der Windows Aufgabenplanung unter dem Betriebssystem "Windows 7".

 

Öffnen Sie die Aufgabenplanung über das Windows Startmenü. Navigieren Sie zur Aufgabenplanungsbibliothek. Wählen Sie im Aktionsbereich den Eintrag "Einfache Aufgabe erstellen...".

 

Vergeben Sie einen Namen für die Aufgabe sowie einen optionalen Beschreibungstext. Klicken Sie auf [Weiter].

Wählen Sie im nächsten Schritt das Sicherungsintervall. Wir empfehlen eine tägliche Sicherung. Klicken Sie auf [Weiter].

 

Sicherung SQL Server per Aufgabenplanung (2)

 

Legen Sie den Startdatum sowie die Uhrzeit fest, zu der die Sicherung gestartet werden soll. Klicken Sie auf [Weiter].

 

Legen Sie im nächsten Schritt die Aktion "Programm starten" fest. Klicken Sie auf [Weiter].

 

Sicherung SQL Server per Aufgabenplanung (3)

 

Geben Sie im nächsten Schritt die Batchdatei an, die das SQL-Sicherungsskript aufruft.

 

Beenden Sie anschließend den Assistenten.

 

Prüfen Sie nach Ablauf des nächsten Sicherungsintervalls, ob die Sicherung erfolgreich war. Sichern Sie die erzeugte *.bak-Datei in regelmäßigen Abständen zusätzlich auf ein externes Sicherungsmedium.

 

Warn

Wichtig: Ihre Sicherung ist wertlos, wenn die erzeugte *.bak-Datei nicht in regelmäßigen Abständen auf ein externes Sicherungsmedium gesichert wird und die Festplatte Ihres Computers ausfällt!