Externe Tools verwenden
gbak
und nbackup
sind die besten Tools zum Sichern und / oder Wiederherstellen von Firebird-Datenbanken.Sie wurden ausgiebig getestet und kennen die Interna der Datenbank und deren Funktionsweise. Daher ist die Wahrscheinlichkeit, dass diese Tools Ihre wertvollen Daten beschädigen, sehr gering.Einige Datenbankadministratoren verwenden jedoch weiterhin gerne externe Tools (die nicht mit Firebird geliefert werden), um aus irgendeinem Grund Backups zu erstellen.
Da externe Tools anhand des Aliasnamens nicht wissen können, wo sich eine Datenbank befindet, müssen der Skriptschreiber und / oder der Datenbankadministrator explizit den korrekten Speicherort der Datenbankdatei(en) ermitteln und diese an die externe Datei weitergeben Werkzeug.Um dies für Skriptautoren zu vereinfachen, verwendet meine eigene Installation einen Standard in meiner Datei "aliases.conf" wie folgt:
-
Der Datenbankalias muss in Spalte eins beginnen.
-
Vor dem Gleichheitszeichen (=) muss ein Leerzeichen stehen.
-
Nach dem Gleichheitszeichen (=) muss ein Leerzeichen stehen.
-
Doppelte Anführungszeichen um den Datenbankdateinamen sind nicht zulässig - dies funktioniert auch nicht für die Firebird-Dienstprogramme.
-
Datenbanken sind alle Einzeldateidatenbanken.
Die letzte Regel gilt nur für meine Installation und bedeutet, dass das folgende einfache Sicherungsskript funktioniert.Wenn mehrere Dateidatenbanken verwendet würden, wäre mehr Code erforderlich, um eine Sicherung mit externen Tools durchzuführen.
tux> cat /opt/firebird/aliases.conf # --------------------------------------------------------- # WARNUNG: Backup-Standards erfordern Folgendes: # Der Datenbankname beginnt in Spalte 1. # Vor dem Gleichheitszeichen steht ein einzelnes Leerzeichen. # Nach dem Gleichheitszeichen steht ein einzelnes Leerzeichen. # Der Pfad hat keine doppelten Anführungszeichen (sie funktionieren nicht!) # ---------------------------------------------------------- employee = /opt/firebird/examples/empbuild/employee.fdb
Im Folgenden wird die Verwendung des Dienstprogramms "gzip" auf einem Linux-Server zum Erstellen und Komprimieren einer Sicherung einer laufenden Datenbank gezeigt.Folgendes wird als Root-Benutzer ausgeführt, da gfix
ausgeführt werden muss, um die Datenbank herunterzufahren.
tux> # Backup der Produktiv-Mitarbeiter-DB mit gzip tux> gfix -shut -tran 60 employee tux> DBFILE=`grep -i "^employee =" /opt/firebird/aliases.conf | cut -d" " -f3` tux> gzip -9 --stdout $DBFILE > /backups/employee.fdb.gz
Der Wiederherstellungsprozess für diese Datenbank wäre umgekehrt.Wieder läuft das Folgende als root.
tux> # Wiederherstellen der Produktiv-Mitarbeiter-DB aus dem gzip-Backup tux> gfix -shut -tran 60 employee tux> DBFILE=`grep -i "^employee =" /opt/firebird/aliases.conf | cut -d" " -f3` tux> gunzip --stdout /backups/employee.fdb.gz > $DBFILE tux> # Stelle sicher, dass Firebird die Datei sehen kann. tux> chown firebird:firebird $DBFILE