Firebird Documentation Index → Firebird's nbackup Tool → Sperren und Entsperren |
Falls Sie Ihre eigenen Sicherungstools verwenden, oder wenn Sie nur eine Dateikopie erstellen wollen, dann hilft Ihnen nbackup mit dessen Sperr/Entsperr-Modi ebenfalls weiter. „Sperren“ bedeutet hier, dass die Hauptdatenbankdatei vorübergehend eingefroren wird. Dies bedeutet allerdings nicht, dass keine Änderungen in der Datenbank durchgeführt werden können. Wie im Sicherungsmodus werden auch hier alle Änderungen in eine temporäre Deltadatei geschrieben. Unmittelbar nach dem Entsperren wird die Deltadatei mit der Hauptdatenbankdatei zusammengeführt.
Zur Erinnerung: nbackup.exe
befindet sich im
bin
Unterverzeichnis Ihrer
Firebird-Installation. Typische Speicherorte, zum Beispiel, sind:
C:\Programme\Firebird\Firebird_2_0\bin
(Windows) oder /opt/firebird/bin
(Linux). Es existiert keine graphische Oberfläche. Sie müssen das Programm
von der Kommandozeile aus starten (oder von einer Batchdatei oder einer
Anwendung).
Eine typische Reihenfolge, um eine eigene Sicherung durchzuführen, kann wie folgt aussehen:
Sperren der Datenbank mit dem -L
(Lock;
Sperren) Schalter:
nbackup [-U<user>
-P<password>
] -L<database>
Kopieren/sichern/zippen Sie nun die Datenbank mit Ihren bevorzugten Sicherungstools. Die Erstellung einer einfachen Dateikopie ist ebenfalls möglich.
Entsperren Sie die Datenbank mit -N
(uNlock; entsperren):
nbackup [-U<user>
-P<password>
] -N<database>
Die letzte Anweisung wird wiederum die Änderungen, die in die Deltadatei geschrieben wurden, mit der Hauptdatenbankdatei zusammenführen.
Die Sicherung beinhaltet die Daten, so wie diese zum Zeitpunkt der Sperre der Datenbank vorgefunden wurden, unabhängig davon, wie lange der Zustand der Sperre andauerte und wie lange Sie gewartet haben, bis die Sicherung tatsächlich durchgeführt wurde.
Was für die Sicherung und die Wiederherstellung gilt, trifft auch auf die Sperren/Entsperren-Schalter zu: Verwenden Sie diese nicht auf Mehrdateiendatenbanken. Bis sich diese Tatsache geändert hat, verwenden Sie nbackup nie auf solchen Datenbanken!
Eine Kopie einer gesperrten Datenbank ist selbst wiederum eine gesperrte Datenbank. Somit können Sie diese nicht einfach zurückkopieren und danach normal damit weiterarbeiten. Sollte Ihre Originaldatenbank verloren gehen oder beschädigt werden und soll dafür Ihre selbsterstellte Sicherung wiederhergestellt werden (oder wenn Sie die Kopie auf einem anderen Rechner installieren wollen), dann gehen Sie wie folgt vor:
Kopieren/wiederherstellen/entpacken Sie die gesicherte Datenbankdatei mit Ihren dafür benötigten Werkzeugen.
Entsperren Sie nun die Datenbank, allerdings
nicht mit dem -N
Schalter, sondern mit -F
(fixup):
nbackup -F<database>
Warum existieren mit -N
und
-F
zwei Entsperrschalter?
-N
stellt sicher, dass irgendwelche
Änderungen seit der Sperre mit -L
, mit der
Hauptdatenbankdatei zusammengeführt werden. Danach geht die
Datenbank wieder in den normalen Lese/Schreib-Modus über und die
temporäre Datei wird gelöscht.
-F
ändert nur das Zustandsflag der
selbst-wiederhergestellen Datenbank auf
„normal“.
Somit verwenden Sie:
-N
nachdem Sie eine eigene
Kopie/Sicherung erstellt haben (um ein
vorangegangenes -L
wieder
zurückzunehmen);
-F
nachdem Sie eine eigene Sicherung
wiederhergestellt haben.
Es ist etwas unglücklich, dass der letzte Schalter mit
-F
für Fixup benannt wurde. Es wird in diesem
Fall nichts hergerichtet/repariert, sondern es wird die Datenbank nur
entsperrt. Andererseits führt der
-N
(uNlock) Schalter nicht nur ein Entsperren,
sondern auch ein Fixup durch, nämlich die Integration der Änderungen
von der Deltadatei in die Haupdatenbankdatei. Damit müssen wir
leben.
Hinweis: Dieser Abschnitt ist nicht notwendig, um mit nbackup arbeiten zu können, sondern dieser Abschnitt soll Ihnen für das bessere Verständnis der unterschiedlichen Kommandozeilenschalter dienen.
nbackup -L
führt die
folgenden Schritte durch:
Datenbankverbindung aufbauen;
Eine Transaktion starten;
Aufruf von ALTER DATABASE BEGIN BACKUP (diese Anweisung wurde in diesem Abschnitt diskutiert);
Die Transaktion committen;
Datenbankverbindung schließen.
nbackup -N
folgt den
gleichen Schritten, allerdings mit einem „...END
BACKUP“ in Schritt 3.
nbackup -F
arbeitet wie
folgt:
Die wiederhergestellte Datenbankdatei wird geöffnet;
In dieser Datei wird das Zustandsflag von gesperrt
(nbak_state_stalled
) auf normal
(nbak_state_normal
) geändert;
Die Datei wird wieder geschlossen.
nbackup -F arbeitet rein auf Dateiebene und kann daher auch ohne
einen laufenden Firebird Server ausgeführt werden. Jeder
-U
oder -P
Parameter,
der zum Kommando hinzugefügt wird, wird vollständig ignoriert.
Firebird Documentation Index → Firebird's nbackup Tool → Sperren und Entsperren |