Signatur
Beschreibung
fbird_backup() ist ein Alias für ibase_backup() und gehört zur Firebird/InterBase-Erweiterung von PHP. Die Funktion startet einen Backup-Vorgang auf dem Datenbankserver und schreibt die Sicherungskopie in eine Datei auf dem Server-Dateisystem.
Als erstes Argument wird ein Service-Handle benötigt, das zuvor mit ibase_service_attach() geöffnet wurde. Der Parameter $source_db gibt den Pfad zur Quelldatenbank auf dem Server an, während $dest_file den Zielpfad der Backup-Datei definiert.
Über den Parameter $options können bitweise kombinierte Konstanten übergeben werden, z. B. IBASE_BKP_IGNORE_CHECKSUMS, IBASE_BKP_IGNORE_LIMBO, IBASE_BKP_METADATA_ONLY oder IBASE_BKP_NO_GARBAGE_COLLECT, um das Verhalten des Backups anzupassen.
Ist $verbose auf true gesetzt, werden während des Backup-Vorgangs detaillierte Fortschrittsinformationen ausgegeben, was bei großen Datenbanken zur Diagnose nützlich sein kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $service_handle Pflicht | resource | Ein aktives Service-Handle, das mit ibase_service_attach() geöffnet wurde. |
|
| $source_db Pflicht | string | Pfad zur Quelldatenbank auf dem Firebird/InterBase-Server (serverseitiger Pfad). | |
| $dest_file Pflicht | string | Serverseitiger Pfad zur Zieldatei, in die das Backup geschrieben werden soll. | |
| $options | int | 0 | Bitweise kombinierte Optionen, z. B. IBASE_BKP_IGNORE_CHECKSUMS, IBASE_BKP_IGNORE_LIMBO, IBASE_BKP_METADATA_ONLY oder IBASE_BKP_NO_GARBAGE_COLLECT. |
| $verbose | bool | false | Wenn true, werden detaillierte Fortschrittsausgaben während des Backup-Vorgangs ausgegeben. |
Rückgabewert
true zurück, wenn das Backup erfolgreich gestartet wurde, oder false bei einem Fehler. Bei aktivierter Verbose-Ausgabe werden Statusmeldungen direkt ausgegeben.Beispiele
Einfaches Datenbank-Backup erstellen
<?php
// Verbindung zum Firebird-Service herstellen
$serviceHandle = ibase_service_attach('localhost', 'sysdba', 'masterkey');
if ($serviceHandle) {
$sourceDb = '/var/lib/firebird/data/meinedatenbank.fdb';
$backupFile = '/var/backups/meinedatenbank_' . date('Ymd_His') . '.fbk';
$result = fbird_backup($serviceHandle, $sourceDb, $backupFile);
if ($result) {
echo "Backup erfolgreich erstellt: " . $backupFile;
} else {
echo "Fehler beim Erstellen des Backups.";
}
ibase_service_detach($serviceHandle);
} else {
echo "Verbindung zum Service fehlgeschlagen.";
}
Backup mit Optionen und Verbose-Ausgabe
<?php
// Service-Handle öffnen
$serviceHandle = ibase_service_attach('localhost', 'sysdba', 'masterkey');
if ($serviceHandle) {
$sourceDb = '/var/lib/firebird/data/meinedatenbank.fdb';
$backupFile = '/var/backups/meta_only_backup.fbk';
// Nur Metadaten sichern, Limbo-Transaktionen ignorieren
$options = IBASE_BKP_METADATA_ONLY | IBASE_BKP_IGNORE_LIMBO;
$result = fbird_backup($serviceHandle, $sourceDb, $backupFile, $options, true);
if ($result) {
echo "Metadata-Backup erfolgreich abgeschlossen.";
} else {
echo "Fehler beim Backup-Vorgang.";
}
ibase_service_detach($serviceHandle);
}
// Wichtig · Fallstricke
Alias: fbird_backup() ist ein Alias von ibase_backup(). Beide Funktionen verhalten sich identisch. In modernem Code sollte geprüft werden, welche Variante auf dem jeweiligen System verfügbar ist.
Serverseitige Pfade: Die Pfade für $source_db und $dest_file werden auf dem Datenbankserver interpretiert, nicht auf dem PHP-Server. Stellen Sie sicher, dass der Firebird-Prozess Schreibrechte auf das Zielverzeichnis hat.
Verfügbarkeit: Die Funktion ist nur verfügbar, wenn die PHP-Interbase/Firebird-Erweiterung (php-interbase bzw. php-firebird) installiert und aktiviert ist. Ab PHP 8.0 wurde die Erweiterung aus dem PHP-Core entfernt und muss separat installiert werden.
Sicherheit: Übergeben Sie keine unvalidierten Benutzereingaben als Datei- oder Datenbankpfade, da dies zu Path-Traversal-Angriffen führen kann.