---
title: "Firebird-Datenbank automatisch sichern (Windows-Batch-Skript)"
description: "Ein Batch-Skript sichert Ihre Firebird-Datenbank jede Nacht im Hintergrund, mit Protokoll, Aufräumroutine und einem Prüfschritt, der zeigt, dass sich die Sicherung wirklich zurückspielen lässt."
url: https://help.portiervision.com/de/articles/114-firebird-datenbank-automatisch-sichern-windows-batch-skript
collection: "Integrationen & IT-Einrichtung"
updated: 2026-08-28
language: de
alternates: [en, fr]
---

# Firebird-Datenbank automatisch sichern (Windows-Batch-Skript)

Ein Batch-Skript sichert Ihre Firebird-Datenbank jede Nacht im Hintergrund, mit Protokoll, Aufräumroutine und einem Prüfschritt, der zeigt, dass sich die Sicherung wirklich zurückspielen lässt.

## Wofür dieses Skript ist

portier Vision bringt keine Sicherungsfunktion mit, die Sie im Programm starten können. Läuft Ihre Datenbank auf Firebird, sichert das folgende Batch-Skript sie jede Nacht im Hintergrund.

Läuft Ihre Datenbank auf Microsoft SQL Server, hilft dieses Skript nicht. `gbak.exe` sichert ausschließlich Firebird. Ihr SQL Server wird mit seinen eigenen Mitteln gesichert, üblicherweise über einen Wartungsplan oder einen Auftrag des SQL Server-Agenten. portier liefert dafür nichts mit, das gehört zur Betreuung Ihres Datenbankservers.

## Voraussetzungen

-   Firebird ist installiert, `gbak.exe` liegt im Firebird-Verzeichnis.
    
-   Sie haben Schreibrechte auf den Sicherungsordner.
    
-   Sie kennen das SYSDBA-Kennwort Ihrer Firebird-Installation.
    
-   Die Windows-Aufgabenplanung ist verfügbar.
    

Liegt die Datenbank auf einem Server, richten Sie Skript und Aufgabe auf dem Server ein, nicht auf einem Arbeitsplatzrechner.

## Schritt 1: Den Datenbankpfad ablesen

Raten Sie den Pfad nicht. Er steht im portier Vision Companion.

1.  Öffnen Sie den Companion. Auf dem Anmeldebildschirm führt **Datenbank-Konfigurator öffnen** direkt hin, nach der Anmeldung der Reiter **Datenbankkonfiguration**.
    
2.  Unter **Datenbanktyp** steht **Firebird**.
    
3.  Notieren Sie den Wert aus **Datenbankpfad**. Er gehört gleich in die Zeile `DBPATH`.
    
4.  Steht unter **Host** nicht `localhost`, liegt die Datenbank auf einem anderen Rechner. Richten Sie die Sicherung dort ein.
    

![Der Wert aus dem Feld Datenbankpfad gehört in die Zeile DBPATH des Skripts.](https://staticfiles.gleap.io/p69f19d405a24ffe33e3bc1d5/f77zJAJq6ztNC8V3frDGyNE6bWb7ZZhOe8VtyMJJbzm7CiakE6MvwC1IJIjvZ5H95wKEqlxp82g.png)

_Der Wert aus dem Feld Datenbankpfad gehört in die Zeile DBPATH des Skripts._

## Schritt 2: Das Skript speichern

Speichern Sie den folgenden Text als `C:\portier\backup\portier_backup.bat`. Merken Sie sich diesen Pfad genau. Die geplante Aufgabe muss später auf dieselbe Datei zeigen.

```bat
@echo off
setlocal EnableExtensions EnableDelayedExpansion
:: ================== Settings ==================
set "FBPATH=C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe"
set "DBPATH=C:\portier\vision5\PORTIERVISION.GDB"
set "BKPATH=C:\portier\backup"
set "USER=SYSDBA"
set "PASS=IHR_SYSDBA_KENNWORT"
set "RETENTION_DAYS_BACKUPS=14"
set "RETENTION_DAYS_LOGS=30"
:: ==============================================
:: --- Pre-checks & create folder ---
if not exist "%BKPATH%" mkdir "%BKPATH%" 2>nul
if not exist "%BKPATH%" exit /b 2
if not exist "%DBPATH%" exit /b 3
if not exist "%FBPATH%" exit /b 4
:: --- Timestamp for unique filenames ---
for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy-MM-dd_HH-mm-ss\")"') do set "STAMP=%%i"
set "BKFILE=%BKPATH%\portier_%STAMP%.fbk"
set "LOGFILE=%BKPATH%\backup_log_%STAMP%.txt"
(
echo ==================================================
echo Backup started: %DATE% %TIME%
echo gbak  : "%FBPATH%"
echo DB    : "%DBPATH%"
echo Target: "%BKFILE%"
echo ==================================================
) >> "%LOGFILE%"
:: --- Execute backup silently ---
"%FBPATH%" -b -v -user %USER% -pas %PASS% "%DBPATH%" "%BKFILE%" >> "%LOGFILE%" 2>&1
set "RC=%ERRORLEVEL%"
if "%RC%"=="0" (
echo [%DATE% %TIME%] Backup OK >> "%LOGFILE%"
) else (
echo [%DATE% %TIME%] ERROR, Code %RC% >> "%LOGFILE%"
)
:: --- Cleanup old backups ---
echo. >> "%LOGFILE%"
echo [%DATE% %TIME%] Cleaning: *.fbk older than %RETENTION_DAYS_BACKUPS% days >> "%LOGFILE%"
forfiles /p "%BKPATH%" /m *.fbk /d -%RETENTION_DAYS_BACKUPS% /c "cmd /c del /q /f @path" 2>> "%LOGFILE%"
:: --- Cleanup old logs ---
echo [%DATE% %TIME%] Cleaning: Logs older than %RETENTION_DAYS_LOGS% days >> "%LOGFILE%"
forfiles /p "%BKPATH%" /m backup_log_*.txt /d -%RETENTION_DAYS_LOGS% /c "cmd /c del /q /f @path" 2>> "%LOGFILE%"
echo ================================================== >> "%LOGFILE%"
echo Backup completed. >> "%LOGFILE%"
endlocal & exit /b %RC%
```

## Schritt 3: Die Einstellungen anpassen

Nur der Block oben wird geändert.

-   `FBPATH`: Pfad zu `gbak.exe`. Prüfen Sie ihn im Explorer, das Firebird-Verzeichnis heißt je nach Version anders.
    
-   `DBPATH`: der Wert aus **Datenbankpfad**, Schritt 1.
    
-   `BKPATH`: Ordner für Sicherungen und Protokolle.
    
-   `PASS`: Ihr SYSDBA-Kennwort.
    
-   `RETENTION_DAYS_BACKUPS` und `RETENTION_DAYS_LOGS`: Aufbewahrung in Tagen.
    

**Zum Kennwort.** `masterkey` ist das Standardkennwort jeder frischen Firebird-Installation. Steht es bei Ihnen noch, ändern Sie es, bevor Sie weitermachen. Das Kennwort liegt in dieser Datei im Klartext, also beschränken Sie die Zugriffsrechte auf `C:\portier\backup` auf das Konto, unter dem die Aufgabe läuft.

## Schritt 4: Einmal von Hand starten

Starten Sie die Datei per Doppelklick. Es öffnet sich kein Fenster. Sehen Sie danach in `C:\portier\backup` nach. Dort müssen zwei neue Dateien liegen, eine `.fbk` und ein Protokoll. Fehlen sie, prüfen Sie die Rückgabewerte weiter unten.

## Schritt 5: Geplante Aufgabe anlegen

1.  Öffnen Sie die **Aufgabenplanung** (`taskschd.msc`).
    
2.  Wählen Sie **Aufgabe erstellen**.
    
3.  Unter **Allgemein**: Name `portier Firebird Backup`, dazu **Mit höchsten Privilegien ausführen** und **Unabhängig von der Benutzeranmeldung ausführen**.
    
4.  Unter **Trigger**: Neu, täglich, 02:00 Uhr.
    
5.  Unter **Aktionen**: Programm starten, `C:\portier\backup\portier_backup.bat`. Zeichen für Zeichen derselbe Pfad wie in Schritt 2.
    
6.  Speichern, dann Rechtsklick auf die Aufgabe und **Ausführen**.
    

**Ein Tippfehler in Schritt 5 bleibt unbemerkt.** Zeigt die Aufgabe auf eine Datei, die es nicht gibt, startet sie zur eingestellten Zeit, tut nichts und meldet nichts auf dem Bildschirm. Es entsteht keine Sicherung und kein Protokoll, weil das Skript gar nicht läuft. Der einzige Hinweis steht in der Spalte **Ergebnis der letzten Ausführung**. Prüfen Sie deshalb am Morgen nach dem ersten geplanten Lauf, ob im Sicherungsordner eine `.fbk` mit dem Datum von heute liegt.

## Schritt 6: Prüfen, ob sich die Sicherung zurückspielen lässt

Eine Sicherung, die nie zurückgespielt wurde, ist eine Vermutung. Prüfen Sie einmal nach der Einrichtung, danach ein- bis zweimal im Jahr.

```bat
"C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe" -c -user SYSDBA -pas IHR_SYSDBA_KENNWORT "C:\portier\backup\portier_2026-08-28_02-00-01.fbk" "C:\portier\backup\pruefung.fdb"
```

-   Nehmen Sie die neueste `.fbk` aus dem Sicherungsordner.
    
-   `-c` legt eine **neue** Datenbank an. Das Ziel ist eine Testdatei. Zeigen Sie niemals auf `PORTIERVISION.GDB`.
    
-   Der Befehl muss ohne Fehlermeldung durchlaufen, und `pruefung.fdb` muss ungefähr so groß sein wie Ihre Live-Datenbank.
    
-   Löschen Sie `pruefung.fdb` danach.
    

Läuft der Befehl auf einen Fehler, ist Ihre Sicherung nicht brauchbar. Dann klären Sie das, bevor Sie sie brauchen.

## Rückgabewerte

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Wert</p></th><th colspan="1" rowspan="1"><p>Bedeutung</p></th></tr><tr><td colspan="1" rowspan="1"><p>0</p></td><td colspan="1" rowspan="1"><p>Sicherung erfolgreich</p></td></tr><tr><td colspan="1" rowspan="1"><p>2</p></td><td colspan="1" rowspan="1"><p>Sicherungsordner konnte nicht angelegt werden, BKPATH prüfen</p></td></tr><tr><td colspan="1" rowspan="1"><p>3</p></td><td colspan="1" rowspan="1"><p>Datenbank nicht gefunden, DBPATH prüfen</p></td></tr><tr><td colspan="1" rowspan="1"><p>4</p></td><td colspan="1" rowspan="1"><p>gbak.exe nicht gefunden, FBPATH prüfen</p></td></tr><tr><td colspan="1" rowspan="1"><p>anderer Wert</p></td><td colspan="1" rowspan="1"><p>Rückgabewert von gbak.exe, Einzelheiten stehen im Protokoll</p></td></tr></tbody></table>

Jeder Lauf schreibt ein eigenes Protokoll mit Zeitstempel. Ein erfolgreicher Lauf sieht so aus:

```
==================================================
Backup started: 13.10.2025 07:00:01
gbak  : "C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe"
DB    : "C:\portier\vision5\PORTIERVISION.GDB"
Target: "C:\portier\backup\portier_2025-10-13_07-00-01.fbk"
==================================================
gbak: creating file C:\portier\backup\portier_2025-10-13_07-00-01.fbk
gbak: writing data...
gbak: finishing, closing, and going home
[13.10.2025 07:01:12] Backup OK
```

## Was das Skript nicht leistet

-   Es bringt nichts aus dem Haus. Liegt die Sicherung auf derselben Platte wie die Datenbank, ist sie bei einem Hardwaredefekt mit weg. Kopieren Sie die `.fbk` zusätzlich auf ein anderes Medium.
    
-   Es sichert keinen Microsoft SQL Server.
    
-   Es ersetzt nicht die Frage, wer morgen früh merkt, dass die Sicherung ausgeblieben ist.
    

Ein letzter Hinweis. Kopieren Sie `PORTIERVISION.GDB` niemals im laufenden Betrieb mit dem Explorer, die Kopie ist unbrauchbar. `gbak` darf im laufenden Betrieb sichern, Vision kann geöffnet bleiben.
