Bei den kostenlosen SQL-Server-Express-Versionen 2005 und 2008 von MS findet sich der Punkt „Wartungsplan“ nicht im Server Management-Studio, mit dem man regelmäßige Datensicherungen planen kann. Diese Funktion bleibt den kostenpflichtigen großen Versionen vorbehalten. Nun ist es jedoch sehr wichtig, die Daten eines SQL-Servers automatisch zu sichern. Mit einer Kopie des Programmverzeichnisses und der darin liegenden Datenbankdateien ist es nicht getan – die Kopie wird fehlschlagen da die Datenbankdateien ja jederzeit geöffnet sind.

Pinzipiell bieten sich zwei Wege zur Sicherung an:

1. Vor dem Sichern der Datenbank-Dateien wird der zugehörige SQL-Server Express Dienst beendet und danach wieder gestartet, hierzu werden die Befehle

NET START MSSQL$SQLEXPRESS

bzw.

NET STOP MSSQL$SQLEXPRESS

benötigt. Nachteil: die Protokolle des SQL-Servers werden nicht gelöscht und können  im Lauf der Zeit recht groß werden.

2. Wesentlich eleganter ist die Variante, die interne Sicherungsfunktion des SQL-Express-Servers von aussen anzustossen. Hierzu werden zwei Dateien benötigt, Die eine enthält den SQL-Code der Umfang und Ziel der Sicherung bestimmt und die andere Datei ruft diesen SQL-Code dann z.B. über den Taskplaner auf. Hier ist die Vorgehensweise kurz skizziert:

Starten Sie das SQL-Server-Management-Studio und klicken Sie mit der rechten Maustatste auf die Datenbank. Über Tasks-> Sichern können Sie eine manuelle Sicherung der DB anstossen. Treffen Sie hier alle Einstellungen und wählen Sie auch das Sicherungsziel aus. Bevor Sie die Sicherung starten klicken Sie im oberen linken Bereich des Fensters auf die Schaltfläche „Skript“. Hier ist der Inhalt hinterlegt den wir für unsere erste Datei benötigen. Kopieren Sie den Inhalt in eine Textdatei und nennen Sie sie z.B. Backup.sql. Sie können in dieser Dateie auch mehrere Sicherungen hintereinander festlegen, gehen Sie dazu einfach wie oben beschrieben mit der nächsten Datenbank vor und hängen Sie das entstehende SQL-Skript an die .sql-Datei an.

Erstellen Sie als nächstes mit einem Editor eine .cmd Datei mit folgendem Inhalt:

@Echo Off

SQLCMD -E -S Servername\SQLEXPRESS -i C:\backup.sql

„Servername“ ist mit dem Namen des PC zu ersetzen auf dem Sie sichern und der Pfad zur „backup.sql“ muss ebenfalls angepasst werden. Speichern Sie diese Datei z.B. unter dem Namen BackuSQL.cmd.

Mit dem Taskplaner legen Sie nun einen zeitgesteuerten Task an der die BackupSQL.cmd regelmäßig aufruft und so Ihre SQL Express-DB’s komfortabel sichert!

Alle gezeigten Lösungsvorschläge werden ohne Gewähr gegeben, die Anwendung erfolgt auf eigene Gefahr.