Sichern mit der Windows-Aufgabenplanung
Eine SQL Server Express-Datenbank mit einem Skript und der Windows-Aufgabenplanung automatisch sichern.
Automatische Sicherungen für SQL Server Express-Datenbanken
Diese Anleitung beschreibt, wie Sie eine Microsoft SQL Server Express-Datenbank automatisch sichern. Der Express-Edition fehlt der SQL Server-Agent, der Sicherungen nach Zeitplan ausführt. Diese Lücke schließen Sie mit einem SQL-Skript, einer Batchdatei und der Windows-Aufgabenplanung.
Behörden und Unternehmen mit einem vollwertigen Microsoft SQL Server sichern die Datenbank besser mit den Sicherungsfunktionen des SQL Servers (Wartungspläne, SQL Server-Agent). Lesen Sie dazu die Dokumentation von Microsoft.
Schritt 1: SQL-Skript für die Sicherung anlegen
Das folgende Skript sichert die Datenbank und ihr Transaktionsprotokoll in je eine Datei. Im Beispiel heißt die Datenbank MultiBaseCS_Home, die Sicherungen landen im Ordner D:\Backup.
SQL-Skript zur Sicherung der Datenbank
BACKUP DATABASE [MultiBaseCS_Home]
TO DISK = 'D:\Backup\MultiBaseCS_Home_Sicherung.bak'
WITH INIT, NAME = N'MultiBaseCS_Home_Sicherung'
BACKUP LOG [MultiBaseCS_Home]
TO DISK = 'D:\Backup\MultiBaseCS_Home_Log_Sicherung.bak'
WITH INIT, NAME = N'MultiBaseCS_Home_Log_Sicherung'Die Option WITH INIT überschreibt die Sicherungsdatei bei jedem Lauf. Die Datei enthält also immer nur die letzte Sicherung.
Den Befehl BACKUP LOG brauchen Sie nur, wenn das Wiederherstellungsmodell der Datenbank auf Vollständig steht. Ohne regelmäßige Sicherung des Transaktionsprotokolls kann die Festplatte in diesem Fall volllaufen. Steht das Wiederherstellungsmodell auf Einfach, lassen Sie den Befehl weg.
Speichern Sie das Skript als D:\Backup\MultiBaseCS-Sicherung.sql.
Schritt 2: Batchdatei anlegen
Die Batchdatei ruft das SQL-Skript mit dem Kommandozeilenprogramm sqlcmd auf, das mit dem SQL Server installiert wird. Die Ausgaben schreibt sie in eine Protokolldatei, die anschließend einen Zeitstempel im Namen erhält.
Batchdatei zum Aufruf über die Windows-Aufgabenplanung
@echo off
rem Vollsicherung der MultiBaseCS-Datenbank
sqlcmd -S localhost\MultiBaseCS -E -i D:\Backup\MultiBaseCS-Sicherung.sql -o D:\Backup\BackupLog.txt
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
)
rem Protokolldatei mit Zeitstempel umbenennen
ren D:\Backup\BackupLog.txt FullBackup-%year%-%month%-%day%-%hour%-%minute%.txtPassen Sie die Angabe hinter -S an Ihre SQL Server-Instanz an (Rechnername\Instanzname):
- Die SQL Server-Instanz für MultiBaseCS (früher mit der MultiBaseCS Datenbankkomponente eingerichtet) heißt
MultiBaseCS, zum Beispiellocalhost\MultiBaseCS. - Bei einer Standardinstallation von SQL Server Express heißt die Instanz meist
SQLEXPRESS.
Der Parameter -E meldet sich mit dem Windows-Konto an, unter dem die Aufgabe läuft. Dieses Konto braucht das Recht, die Datenbank zu sichern.
Speichern Sie die Batchdatei als D:\Backup\SQLBackup.cmd.
Schritt 3: Aufgabe in der Windows-Aufgabenplanung anlegen
-
Öffnen Sie die Aufgabenplanung über das Windows-Startmenü und wählen Sie die Aufgabenplanungsbibliothek.
-
Klicken Sie im Bereich Aktionen auf Einfache Aufgabe erstellen ….
-
Geben Sie einen Namen und optional eine Beschreibung ein. Klicken Sie auf Weiter.
-
Wählen Sie das Intervall. Wir empfehlen eine tägliche Sicherung. Klicken Sie auf Weiter.

-
Legen Sie Startdatum und Uhrzeit fest. Klicken Sie auf Weiter.
-
Wählen Sie die Aktion Programm starten. Klicken Sie auf Weiter.

-
Wählen Sie die Batchdatei
SQLBackup.cmdaus und beenden Sie den Assistenten.
Prüfen Sie nach dem ersten Sicherungslauf, ob die Sicherung geklappt hat. Ein Blick in die Protokolldatei im Ordner D:\Backup genügt.