Es ist eine ziemlich einfache Frage. Firebird hat ein Backup-Tool namens nbackup , während Sie inkrementelle Backups erstellen können.
Das Tool beschwert sich, wenn Sie die Sicherung nicht in der richtigen Reihenfolge vornehmen (z. B. eine Sicherung der Stufe 0 und dann eine Stufe 2). Dann nehme ich an, dass das Tool eine Markierung in die Datenbank setzt, die die Stufe der letzten durchgeführten Sicherung anzeigt.
Die Dokumentation finden Sie hier
Wie kann ich diese Informationen abrufen?
Soweit ich weiß, besteht die einzige Möglichkeit darin, die Tabelle RDB$BACKUP_HISTORY
abzufragen (dafür gibt es keinen Service Manager-Aufruf). Um die letzte Sicherung zu erhalten, können Sie verwenden:
Die Tabelle RDB$BACKUP_HISTORY
hat die folgenden Spalten:
RDB$BACKUP_ID
Primärschlüssel RDB$TIMESTAMP
Zeitstempel der Sicherung RDB$BACKUP_LEVEL
Backup-Level RDB$GUID
GUID der Sicherung (wird auch in den Sicherungsdateien verwendet, um Abhängigkeiten zu steuern und zu überprüfen) RDB$SCN
höchste Seitenmarkierung im Backup (siehe unten) RDB$FILE_NAME
Dateiname des erstellten Backups Nbackup führt eine physische Sicherung der Datenbankseiten durch. Der SCN (Abkürzung für Page Scan ...) ist eine Nummer, mit der Datenbankseiten markiert werden. Diese Anzahl wird bei jeder Änderung des Sicherungsstatus erhöht. Für jede Sicherung mit nbackup gibt es 3 Statusänderungen: nbak_state_normal (keine Sicherung) - & gt; nbak_state_stalled (Datenbank schreibt in Delta-Datei) - & gt; nbak_state_merge (Zusammenführen der Delta-Datei in die Datenbank) - & gt; nbak_state_normal (keine Sicherung).
Die erste Sicherung erhält SCN 0, die zweite SCN 3 usw. (egal welche Stufe).
Wenn Sie eine Sicherung der Stufe 1 erstellen, sucht sie nach der Sicherung der letzten Stufe 0 und sichert alle Seiten mit einem SCN, der höher ist als der SCN der Sicherung der Stufe 0 (usw.). Dies wird auch in den Firebird 2.1-Versionshinweisen beschrieben: New Online Inkrementelles Backup .
Beachten Sie, dass eine Sicherung und Wiederherstellung mit gbak die Tabelle RDB$BACKUP_HISTORY
löscht und die SCN aller Seiten auf 0 zurücksetzt. Der Grund dafür ist, dass gbak eine logische Sicherung anstelle von a erstellt physische Sicherung Bei einer Wiederherstellung mit gbak wird die gesamte Datenbank neu geschrieben (und kann sogar die Seitengröße ändern). Dies macht vorherige Backups mit nbackup bedeutungslos als Ausgangspunkt für nachfolgende Backups: Sie müssen mit einer neuen Ebene 0 beginnen.
Da diese Informationen im nbackup-Handbuch fehlen, habe ich ein Ticket auf dem Firebird-Tracker erstellt: Ссылка
Tags und Links database firebird firebird2.5