Zum Hauptinhalt springen

Konzepte — Backups

Terminologie​

BegriffBeschreibung
Ziel (Destination)Ein S3-Bucket des Projekts, der Bucket-Benutzer, dessen Zugangsdaten es verwendet, und eine Aufbewahrungsdauer in Tagen. Jedes Backup wird in ein Ziel geschrieben.
AufbewahrungDauer, während der ein Archiv aufbewahrt wird, von 1 bis 3 650 Tagen. Nach Ablauf dieser Frist wird das Archiv automatisch gelöscht.
Zeitplan (Plan)Wiederkehrendes Backup einer Ressource in ein Ziel, zu festgelegten Zeiten.
AusführungEin laufendes Backup, ausgelöst durch einen Zeitplan oder auf Abruf. Eine erfolgreiche Ausführung erzeugt ein Archiv.
ArchivGespeicherte Kopie des Zustands einer Ressource zu einem bestimmten Zeitpunkt, aus der wiederhergestellt wird.
WiederherstellungNeuschreiben einer Ressource anhand eines Archivs.
QuellressourceDie Datenbank, die VM oder die Disk, von der das Archiv erstellt wurde.
Ziel der WiederherstellungDie Ressource, in die eine Wiederherstellung schreibt: die Quelle selbst (Wiederherstellung an Ort und Stelle) oder eine andere Datenbank desselben Typs.

Abgedeckte Ressourcen​

TypWiederherstellung an Ort und StelleWiederherstellung in eine andere RessourceWiederherstellung zu einem bestimmten ZeitpunktLöschen eines Archivs löscht die Daten
PostgreSQLJaJa, in eine PostgreSQL-Datenbank derselben HauptversionJaNein
MariaDBJaJa, in eine andere MariaDB-DatenbankNeinNein
Virtuelle MaschineJaNeinNeinJa
DiskNur wenn die Disk gelöscht wurdeNeinNeinJa

Die anderen Services (MongoDB, Redis, RabbitMQ, Kubernetes-Cluster, Buckets) werden nicht abgedeckt.

Eine VM nimmt ihre Disks mit​

Das Archiv einer virtuellen Maschine enthält alle Disks der VM. Diese Disks benötigen daher keinen eigenen Zeitplan: In der Registerkarte Backups einer solchen Disk zeigt die Konsole Backed up with another resource an, und unter Backups > Protection den Zustand Covered. Das Archiv der VM erscheint auch in der Archivliste der Disk.

Die Wiederherstellung dieses Archivs schreibt die VM und alle ihre Disks neu: Es ist nicht möglich, nur einen Teil davon wiederherzustellen.


Ziele​

Ein Ziel wird unter Backups > Destinations > Create a destination erstellt. Es umfasst:

ElementRegel
Name1 bis 40 Zeichen: Kleinbuchstaben, Ziffern und Bindestriche, ohne Bindestrich am Anfang oder Ende. Eindeutig im Projekt.
BucketEin S3-Bucket desselben Projekts. Vor dem ersten Ziel muss einer erstellt werden.
CredentialsEin Benutzer des Buckets. Die Konsole bietet an, einen dedizierten Benutzer zu erstellen (empfohlen: Seine Zugangsdaten dienen nur den Backups und lassen sich widerrufen, ohne den Rest zu beeinträchtigen) oder einen bestehenden wiederzuverwenden.
RetentionGanze Zahl von Tagen, von 1 bis 3 650. In der Konsole standardmäßig 30 Tage.

Ein Ziel dient allen abgedeckten Ressourcen des Projekts. Nach der Erstellung lässt sich nur die Aufbewahrung ändern; um den Bucket zu wechseln, erstellen Sie ein anderes Ziel.

Zustände eines Ziels​

ZustandBedeutung
ProvisioningDas Ziel wird gerade eingerichtet oder gelöscht.
ReadyDas Ziel nimmt Zeitpläne, Backups und Wiederherstellungen an.
ErrorDer Bucket oder sein Benutzer ist nicht mehr lesbar, oder eine Löschung ist nicht abgeschlossen. Die Meldung nennt die Ursache.
UnknownDer Zustand konnte nicht gelesen werden; versuchen Sie es in einem Moment erneut.

Nur ein Ziel im Zustand Ready nimmt einen Zeitplan, ein Backup oder eine Wiederherstellung an. Einfach nur falsche Zugangsdaten werden bei der Erstellung nicht erkannt: Bei Datenbanken erscheint der Fehler beim ersten Backup.

Aufbewahrung​

  • Bei MariaDB, VMs und Disks behält jedes Archiv die Aufbewahrung, die zum Zeitpunkt seines Schreibens galt. Eine Änderung der Aufbewahrung eines Ziels betrifft nur die folgenden Archive.
  • Bei PostgreSQL gilt die Aufbewahrung für den gesamten Verlauf der Datenbank: Eine Verkürzung kann bereits geschriebene Archive ab dem nächsten Backup löschen.
  • Ein Archiv, dessen Aufbewahrung abgelaufen ist, wird automatisch gelöscht, zusammen mit der Ausführungszeile, die es erzeugt hat. Das letzte wiederherstellbare Archiv einer Ressource wird immer aufbewahrt, unabhängig von seinem Alter. Ein Archiv, das gerade von einer Wiederherstellung gelesen wird, wird nie gelöscht.
  • Ein Archiv einer VM oder Disk, dessen Aufbewahrung endet, ist ab seinem Ablauf nicht mehr wiederherstellbar, noch bevor es aus der Liste entfernt wird.

Gesperrter Bucket (WORM)​

Wenn der Bucket eines Ziels mit Objektsperre erstellt wurde, zeigt die Konsole WORM · 365 d neben dem Ziel an. Folgen:

  • Jedes Archiv wird nach seinem Schreiben 365 Tage lang gesperrt: Niemand kann es vorher löschen, nicht einmal der Support. Die Konsole zeigt Locked (WORM) until am Archiv an;
  • die Aufbewahrung des Ziels darf nicht kürzer sein als die Dauer der Sperre (365 Tage);
  • ein gesperrtes Archiv bleibt während der gesamten Dauer der Sperre wiederherstellbar.

PostgreSQL: nur ein Ziel​

Eine PostgreSQL-Datenbank archiviert ihre Transaktionsprotokolle zwischen zwei Backups kontinuierlich in ein einziges Ziel. Zwei Ziele für dieselbe Datenbank würden sich diesen Strom teilen: Keines der beiden enthielte einen vollständigen und damit wiederherstellbaren Verlauf. Hikube lehnt es daher ab, eine PostgreSQL-Datenbank in ein zweites Ziel zu sichern, sei es per Zeitplan oder auf Abruf.

Um Archive in unterschiedlichen Rhythmen aufzubewahren (zum Beispiel täglich und monatlich), verwenden Sie mehrere Zeitpläne in dasselbe Ziel. Bei MariaDB, VMs und Disks sind mehrere Ziele möglich.


Zeitpläne​

Ein Zeitplan verbindet eine Ressource, ein Ziel und eine Uhrzeit. Name, Ressource und Ziel werden bei der Erstellung festgelegt; nur die Uhrzeit lässt sich ändern.

ElementRegel
Plan name1 bis 40 Zeichen: Kleinbuchstaben, Ziffern und Bindestriche, ohne Bindestrich am Anfang oder Ende. Eindeutig im Projekt.
UhrzeitEine Voreinstellung (Hourly, Daily, Weekly) oder ein Cron-Ausdruck mit fünf Feldern.
Maximale HäufigkeitEine Ausführung pro Stunde.

Uhrzeiten und Zeitzone​

Die Uhrzeit eines Zeitplans wird in UTC gespeichert.

  • In der Registerkarte Preset wählen Sie eine lokale Uhrzeit; die Konsole rechnet sie beim Speichern in UTC um.
  • In der Registerkarte Cron expression geben Sie direkt einen Ausdruck in UTC ein, zum Beispiel 30 1 * * * für täglich 01:30 UTC. @hourly, @daily, @weekly, @monthly und @yearly werden akzeptiert; Intervalle (@every) und Zeitzonen-Präfixe (CRON_TZ=, TZ=) werden abgelehnt.
  • Da die Uhrzeit in UTC fest ist, verschiebt sich ein geplantes Backup in lokaler Zeit um eine Stunde bei jeder Zeitumstellung. Die Konsole weist darauf hin und zeigt die Next run in lokaler Zeit an.

Zustände eines Zeitplans​

ZustandBedeutung
ReadyDie Uhrzeit ist gültig, Ressource und Ziel existieren.
ErrorDie Uhrzeit ist ungültig, oder die Ressource oder das Ziel existiert nicht mehr. Die Meldung nennt, welches.
UnknownDer Zustand konnte nicht gelesen werden.

Das Löschen eines Zeitplans beendet die künftigen Ausführungen und behält die bereits erstellten Archive. Der Ausführungsverlauf dieses Zeitplans verschwindet mit ihm.


Ausführungen​

Eine Ausführung durchläuft die Zustände Pending, In progress und dann Succeeded oder Failed. Eine von Ihnen abgebrochene Ausführung wird als Cancelled angezeigt.

  • Bei einer VM oder einer Disk zeigt die Konsole den Prozentsatz der übertragenen Daten an. Diese Zahl misst die gelesenen Daten, nicht den im Bucket belegten Platz: Blöcke, die bereits in einem früheren Archiv vorhanden sind, werden nicht erneut geschrieben.
  • Bei PostgreSQL und MariaDB ist kein Fortschritt verfügbar.

Archive​

Zustände eines Archivs​

ZustandBedeutung
PendingDas Archiv wird gerade geschrieben.
ReadyDas Archiv ist vollständig.
FailedDas Backup ist nicht abgeschlossen; das Archiv ist nicht wiederherstellbar.

Wiederherstellbares Archiv oder nicht​

Ein Archiv im Zustand Ready ist nur wiederherstellbar, wenn sein Ziel noch existiert, nicht gerade gelöscht wird und tatsächlich das Ziel ist, in das das Archiv geschrieben wurde. Andernfalls zeigt die Konsole den Grund an:

Angezeigter GrundWas zu tun ist
Das Archiv ist nicht bereitWarten Sie das Ende des Schreibvorgangs ab, oder verwenden Sie ein anderes Archiv, falls das Backup fehlgeschlagen ist.
Sein Ziel wurde gelöschtDas Archiv wird nicht wieder wiederherstellbar, auch nicht durch Neuerstellen eines gleichnamigen Ziels. Verwenden Sie ein neueres Archiv.
Sein Ziel wird gerade gelöschtVerwenden Sie ein anderes Archiv.
Das Ziel mit diesem Namen wurde nach dem Backup neu erstelltEs ist nicht mehr das Ziel, in das das Archiv geschrieben wurde, auch wenn es auf denselben Bucket verweist. Verwenden Sie ein seitdem erstelltes Archiv.
Die Ziele konnten nicht gelesen werdenVersuchen Sie es in einem Moment erneut.
Die Daten des Archivs sind nicht mehr gespeichertVMs und Disks: Das Archiv wurde gelöscht, zum Beispiel am Ende der Aufbewahrung.

Wiederherstellbar bedeutet, dass die Wiederherstellung angenommen wird; Hikube liest den Inhalt des Buckets nicht erneut, um dies zu prüfen.

Ein Archiv löschen​

TypWirkungBestätigung
PostgreSQL, MariaDBEntfernt das Archiv aus der Liste; seine Daten bleiben in Ihrem Bucket.Einfach
Virtuelle Maschine, DiskEntfernt das Archiv und löscht seine Daten. Dies ist unwiderruflich.Eingabe des Archivnamens

Ein Archiv, das gerade von einer Wiederherstellung gelesen wird, kann nicht gelöscht werden. Ebenso wenig ein durch einen WORM-Bucket gesperrtes Archiv, bis seine Sperre abgelaufen ist.


Wiederherstellungen​

Wiederherstellung an Ort und Stelle oder in eine andere Datenbank​

  • An Ort und Stelle: Das Archiv wird auf seiner Quellressource wiederhergestellt, deren aktueller Inhalt überschrieben wird. Die Konsole verlangt zur Bestätigung die Eingabe des Ressourcennamens.
  • In eine andere Datenbank (nur PostgreSQL und MariaDB): Das Archiv wird in einer anderen bestehenden Datenbank desselben Typs im Projekt wiederhergestellt. Um eine Kopie zu erhalten, erstellen Sie zuerst eine leere Datenbank und stellen Sie das Archiv dann darin wieder her.
    • PostgreSQL: Die Zieldatenbank wird vollständig durch den Inhalt des Archivs ersetzt. Sie muss dieselbe Hauptversion von PostgreSQL haben wie die gesicherte Datenbank.
    • MariaDB: Das Archiv ist ein Export, der in der Zieldatenbank eingespielt wird. Jede darin enthaltene Tabelle ersetzt die gleichnamige Tabelle; Tabellen und Datenbanken, die es nicht enthält, bleiben erhalten.

Eine Wiederherstellung gleichzeitig pro Ressource. Während einer Wiederherstellung wird kein Backup auf Abruf dieser Ressource angenommen.

Quellressource gelöscht oder neu erstellt​

SituationPostgreSQL, MariaDBVM, Disk
Die Quelle wurde gelöschtWählen Sie eine andere Datenbank als Ziel.Die Wiederherstellung erstellt die Ressource aus dem Archiv neu.
Eine neue Ressource trägt den Namen der Quelle und wurde nach dem Backup erstelltSie wird wie eine andere Datenbank behandelt: Die Wiederherstellung wird nach Bestätigung angenommen.Abgelehnt: Löschen Sie zuerst die neu erstellte Ressource und stellen Sie dann wieder her.

Wiederherstellung einer VM: die ersetzten Disks​

Die Wiederherstellung einer VM an Ort und Stelle ersetzt jede ihrer Disks durch ihre Kopie aus dem Archiv. Die Auswahl This machine's current disks bestimmt, was mit ihrem bisherigen Inhalt geschieht:

  • Discard them (Standard): Ihr alter Inhalt wird gelöscht, sobald die Wiederherstellung erfolgreich und geprüft ist.
  • Keep them: Ihr alter Inhalt wird zu einer eigenen Disk namens <disk>-orig-<kennung>, die von jeder VM getrennt ist, unter Disks aufgeführt wird und wie jede Disk abgerechnet wird, bis Sie sie löschen.

Eine Wiederherstellung, die fehlschlägt oder abgebrochen wird, löscht nichts, auch nicht mit Discard them: Die alten Disks werden dann unter demselben Namen <disk>-orig-<kennung> behalten, und die Meldung der Wiederherstellung weist darauf hin. Löschen Sie sie, wenn Sie sie nicht mehr benötigen.

Bevor sie in den Zustand Succeeded wechselt, prüft eine Wiederherstellung einer VM oder Disk, dass jede Disk des Archivs tatsächlich neu geschrieben wurde. Während dieser Prüfung (einige Sekunden) bleibt sie In progress. Wurde eine Disk nicht wiederhergestellt, wechselt die Wiederherstellung unter Nennung dieser Disk zu Failed; ein erneuter Start der Wiederherstellung kann erfolgreich sein.

Eine Disk wird nicht auf sich selbst wiederhergestellt​

Das Archiv einer einzeln gesicherten Disk kann nicht auf dieser Disk wiederhergestellt werden, solange sie existiert. Um eine an eine VM angebundene Disk auf einen früheren Stand zurückzusetzen, stellen Sie ein Archiv der VM wieder her: Es schreibt alle ihre Disks neu. Eine gelöschte Disk dagegen wird durch die Wiederherstellung ihres Archivs neu erstellt.

Abbrechen​

VorgangAbbrechbarHinweise
Noch nicht gestartetes BackupJa, alle Typen
PostgreSQL-BackupSolange es auf den Start wartetEin begonnenes PostgreSQL-Backup lässt sich nicht unterbrechen: Es wird von selbst beendet oder schlägt fehl.
MariaDB-BackupJa
Backup einer VM oder DiskJaIn den ersten Sekunden, während die Konfiguration kopiert wird, wird der Abbruch abgelehnt: Versuchen Sie es einige Sekunden später erneut.
Wiederherstellung von PostgreSQL oder MariaDBNeinEine Datenbank-Wiederherstellung, die nicht zum Abschluss kommt, schlägt nach 30 Minuten von selbst fehl.
Wiederherstellung einer VM oder DiskJaNichts wird rückgängig gemacht: Die VM kann gestoppt bleiben und ihre Disks beiseitegelegt. Eine neue Wiederherstellung stellt sie wieder her.

Ein abgebrochenes Backup wird in der Aktivität als Cancelled angezeigt, nicht als Fehlschlag, und erzeugt kein Archiv.


Wiederherstellung zu einem bestimmten Zeitpunkt (PostgreSQL)​

Eine gesicherte PostgreSQL-Datenbank archiviert ihre Transaktionsprotokolle kontinuierlich in ihr Ziel. Eine Wiederherstellung kann die Datenbank daher zurückversetzen auf:

AuswahlErgebnis
State of the backup (Standard)Den exakten Stand des gewählten Archivs.
Most recent stateDas Archiv, dann alle seitdem archivierten Protokolle: den neuesten bekannten Stand.
Einen ZeitpunktDen Stand der Datenbank unmittelbar vor der ersten Transaktion nach dem gewählten Zeitpunkt.

Wiederherstellungsfenster​

Jedes PostgreSQL-Archiv hat ein Fenster erreichbarer Zeitpunkte, das die Konsole auf einer Zeitleiste anzeigt:

  • Es beginnt am Ende des Backups (nicht an seinem Anfang: Die Datenbank ist erst nach Abschluss des Backups konsistent);
  • es endet vor der letzten Transaktion, die in den archivierten Protokollen vorhanden ist. Ein Zeitpunkt nach der letzten Transaktion kann nicht erreicht werden, da die Wiederherstellung bei der ersten darauffolgenden Transaktion anhält: Wählen Sie dann Most recent state, der diese letzte Transaktion einschließt;
  • die Protokolle werden mit leichter Verzögerung archiviert: Die allerletzten Minuten sind noch nicht wiederherstellbar.

Zweige des Verlaufs​

Die Wiederherstellung einer PostgreSQL-Datenbank an Ort und Stelle beginnt einen neuen Zweig ihres Verlaufs. Die vor dieser Wiederherstellung erstellten Archive gehören zum alten Zweig. Müsste eine Wiederherstellung auf den neuesten Stand oder auf einen bestimmten Zeitpunkt, ausgehend vom gewählten Archiv, auf einem Archiv eines anderen Zweigs aufsetzen, lieferte sie nicht die Daten des gewählten Archivs: Die Konsole bietet diese Zeitpunkte nicht an, und die Wiederherstellung wird abgelehnt. Wählen Sie einen früheren Zeitpunkt oder ein Archiv des gewünschten Zweigs.


Lebenszyklus​

AktionVerhalten
Ein Ziel erstellenProvisioning, dann Ready.
Die Aufbewahrung ändernSiehe Aufbewahrung. Unterhalb der Sperrdauer eines WORM-Buckets nicht möglich.
Ein Ziel löschenAbgelehnt, solange ein Zeitplan, ein Backup oder eine Wiederherstellung es verwendet. Die Archive bleiben im Bucket, sind aber nicht mehr wiederherstellbar; bei PostgreSQL wird ihre Aufbewahrung nicht mehr angewendet.
Einen Zeitplan löschenDie künftigen Ausführungen werden beendet; die Archive bleiben erhalten.
Ein Archiv löschenSiehe Ein Archiv löschen.
Eine gesicherte Ressource löschenIhre Archive bleiben erhalten und wiederherstellbar.

Weiterführende Informationen​