---
title: "Sichern mit der Windows-Aufgabenplanung"
description: "Eine SQL Server Express-Datenbank mit einem Skript und der Windows-Aufgabenplanung automatisch sichern."
topicId: "SQL_Server_Sicherung_Datenbank"
contextId: 268
status: aktualisiert
version: "5.4"
---
## 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.

:::tip
Einfacher geht es mit dem MultiBaseCS Service: Er sichert Ihre Datenbanken nach einem einstellbaren Zeitplan und löscht ältere Sicherungen selbstständig. Siehe [MultiBaseCS Datenbank sichern (MultiBaseCS Service)](/desktop/administration/datensicherung/multibasecs-datenbank-sichern-multibasecs-service).
:::

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**

<a id="sqlscript" />

```sql
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**

<a id="batchdatei" />

```bat
@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%.txt
```

Passen 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 Beispiel `localhost\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`.

:::note
Meldet Windows, dass `sqlcmd` nicht gefunden wurde, geben Sie den vollständigen Pfad zur Datei `SQLCMD.EXE` an. Sie liegt in einem Unterordner von `C:\Program Files\Microsoft SQL Server\`.
:::

## Schritt 3: Aufgabe in der Windows-Aufgabenplanung anlegen

1. Öffnen Sie die **Aufgabenplanung** über das Windows-Startmenü und wählen Sie die **Aufgabenplanungsbibliothek**.
2. Klicken Sie im Bereich **Aktionen** auf **Einfache Aufgabe erstellen …**.
3. Geben Sie einen Namen und optional eine Beschreibung ein. Klicken Sie auf **Weiter**.
4. Wählen Sie das Intervall. Wir empfehlen eine tägliche Sicherung. Klicken Sie auf **Weiter**.

   ![Aufgabenplanung: Startzeitpunkt festlegen](/blume-assets/content/assets/legacy/desktop/sicherung-sql-server-aufgabenplanung-4.png)

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

   ![Aufgabenplanung: Programm auswählen](/blume-assets/content/assets/legacy/desktop/sicherung-sql-server-aufgabenplanung-5.png)

7. Wählen Sie die Batchdatei `SQLBackup.cmd` aus 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.

:::warning
Eine Sicherung auf derselben Festplatte schützt nicht vor deren Ausfall. Kopieren Sie die erzeugten \*.bak-Dateien regelmäßig auf ein externes Sicherungsmedium.
:::
