Programmieren mit dBASE PLUS: SQL-Datenbanken: Firebird Datensicherung


Datensicherungen/Rücksicherungen erstellen Bearbeiten

Datensicherungen mit Batchdatei (Windows) Bearbeiten

Wir bei allen Datenbanken ist es auch bei Firebird wichtig eine funktionierende Datensicherung zu haben. Firebird-Datenbanken können zwar grundsätzlich über den Explorer kopiert werden, allerdings ist dies noch lange keine Garantie, dass die Datenbank hinterher auch wieder funktioniert. Beispielsweise ist es möglich, dass noch offene Transaktionen zum Zeitpunkt des Kopiervorgangs existieren. Außerdem kann es auch Probleme geben, wenn versucht wird die Datenbank z.B. von Windows auf Linux umzustellen. Aus diesem Grund gibt es bei Firebird ein Dienstprogramm, dass eine Datensicherung im laufenden Betrieb ermöglicht. Das Programm gbak befindet sich im bin-Verzeichnis der Firebird-Server Installation. Mit einem Aufruf von

gbak -?

in einer Dos-Box werden alle Parameter des Programmes aufgelistet.

Um eine einfache Datensicherung mit einer Batchdatei unter Windows zu erstellen (kann dann täglich als geplanter Task laufen) werden nur einige wenige Optionen benötigt:

-T (Erstellung einer transportablen Datenbank)
-V (Ausgabe der einzelnen Aktionen - muss aber nicht sein)
-USER (Benutzername des Besitzers der Datenbank)
-PAS (Passwort des Besitzers der Datenbank)

Nach den Optionen muss der Datenbankname und der Name der Sicherungsdatei angegeben werden.

So könnte dann eine einfache Batch-Datei aussehen:

c:\programme\firebird\firebird_1_5\bin\gbak -T -V -USER SYSDBA -PAS masterkey c:\fb\datenbank.fdb c:\fb\datenbank.fbk

Da hier der Benutzername und das Passwort im Klartext stehen, sollte diese Batchdatei nur für den Benutzer lesbar sein, unter dessen Konto der Sicherungsjob läuft. Der Standardsuffix für Firebird-Datenbanksicherungen ist .fbk.

Rücksicherungen (Windows) Bearbeiten

Natürlich kann mit dem Befehl gbak auch eine Rücksicherung der Datenbank gemacht werden. Dabei darf allerdings die Datenbank zur Zeit nicht in Benutzung sein. Bei der Rücksicherung einer Datenbank wird auch automatisch die Datenbank "Reorganisiert". Im Regelfall ist die rückgesicherte Datenbank deutlich kleiner als vorher. Bevor eine Datenbank zurückgesichert wird ist es sinnvoll zuerst einmal eine Rücksicherung in einen anderen Dateinamen auszuprobieren. Wenn diese Rücksicherung fehlerfrei durchläuft dann kann auch auf die Original-Datenbank zurückgesichert werden. Der Hintergrund dieser Empfehlung ist die Tatsache, dass beim Rücksichern auch Inkonsistenzen berücksichtigt werden. (z.B. Leere NOT NULL Felder oder inkonsistente PRIMARY KEYS) In einem solchen Fall bricht die Rücksicherung ab und es wird keine funktionierende Datenbank zurückgesichert. Da es schon möglich ist mit ALTER oder UPDATE Befehlen solche Fehler zu machen, ist ein vorheriger Rücksicherungstest in eine andere Datei dringend zu empfehlen.

Um eine einfache Rücksicherung unter Windows zu erstellen wird nur eine andere Optionen als bei der Datensicherung benötigt:

-R (Restore der Datenbank)
-V (Ausgabe der einzelnen Aktionen - muss aber nicht sein)
-USER (Benutzername des Besitzers der Datenbank)
-PAS (Passwort des Besitzers der Datenbank)

Nach den Optionen muss der Name der Sicherungsdatei und der Datenbankname angegeben werden in den die Rücksicherung erfolgen soll. Um die Datenbank in die Datei test.fdb zurückzusichern kann folgender Befehl verwendet werden.

c:\programme\firebird\firebird_1_5\bin\gbak -R -V -USER SYSDBA -PAS masterkey c:\fb\datenbank.fbk c:\fb\text.fdb

Datensicherung (Linux) Bearbeiten

Unter Linux gibt es den gleichen Befehl mit den gleichen Optionen. Das gbak-Programn liegt hier ebenfalls im bin Verzeichnis.

Sicherung:

/opt/firebird/bin/gbak -T -V -USER SYSDBA -PAS masterkey /fb/datenbank.fdb /fb/datenbank.fbk

Rücksicherung:

/opt/firebird/bin/gbak -R -V -USER SYSDBA -PAS masterkey /fb/datenbank.fbk /fb/test.fdb