Zurück zum Blog Security & Reliability

Sind die Backups Ihrer selbst gehosteten Anwendung konsistent? Datenbank, Dateien und Wiederherstellungsreihenfolge testen

Ein erfolgreich ausgeführter Backup-Job beweist nicht, dass sich eine selbst gehostete Anwendung mit synchronisierten Datensätzen und Anhängen wiederherstellen lässt. Erfassen Sie, was gesichert werden muss, prüfen Sie, wie die Sicherung erfolgt, und testen Sie eine repräsentative Wiederherstellung.

Administrator prüft, ob sich das Datenbank-Backup und die hochgeladenen Dateien einer selbst gehosteten Anwendung gemeinsam wiederherstellen lassen

Ein Backup kann erfolgreich sein, während die Anwendung trotzdem nicht synchron ist

Eine Geschäftsanwendung kann Datensätze in einer Datenbank und hochgeladene Dateien in einem separaten Verzeichnis oder Speicherdienst ablegen. Die Backups dieser Komponenten können jeweils lesbar sein und dennoch unterschiedliche Zeitpunkte abbilden. Nach einer Wiederherstellung könnte ein Datensatz auf einen fehlenden Anhang verweisen oder eine Datei vorhanden sein, zu der der verknüpfende Datensatz fehlt.

Ziel ist festzustellen, ob sich die Anwendung aus einem kompatiblen Satz von Backups wiederherstellen lässt – nicht nur, ob Backup-Dateien erstellt wurden. Ein erfolgreicher Jobbericht zeigt, dass ein Prozess ausgeführt wurde; für sich allein beweist er nicht, dass der vollständige Dienst wiederhergestellt werden kann.

  • Wählen Sie einen repräsentativen Datensatz mit einem hochgeladenen Anhang oder einer anderen verknüpften Datei aus.
  • Ermitteln Sie, wo der Datensatz, die Datei und ihre Verknüpfung gespeichert sind.
  • Betrachten Sie unterschiedliche Backup-Zeitpläne als zu untersuchende Frage – nicht als Beweis für eine Inkonsistenz oder für eine abgestimmte Sicherung.
Ein Backup kann erfolgreich sein, während die Anwendung trotzdem nicht synchron ist

Ermitteln Sie, was die Anwendung benötigt

Prüfen Sie die Dokumentation und die Bereitstellungseinstellungen der Anwendung, um festzustellen, was für eine Wiederherstellung vorhanden sein muss. Gehen Sie nicht davon aus, dass die Datenbank den gesamten Dienst ausmacht oder dass Dateien neben der Datenbank gespeichert werden. Wenn Sie eine Komponente nicht selbst prüfen können, bitten Sie den Hosting-Anbieter, den Umfang zu erläutern.

In den Anleitungen einer Anwendung kann ein Backup aus mehreren Teilen bestehen. Beispielsweise beschreibt die Anleitung von Hudu für selbst gehostete Backups ein vollständiges Backup als zwei separate Teile und nennt eine PostgreSQL-Datenbank als einen davon. Ermitteln Sie anhand der Anleitungen Ihrer eigenen Anwendung, welche Komponenten sie benötigt: [Hudu Support: Self-Hosted Backups and Restores](https://support.hudu.com/hc/en-us/articles/11653994397079-Self-Hosted-Backups-and-Restores).

  • Datenbank und dauerhaft gespeicherte Dateien, einschließlich Anhängen oder anderer hochgeladener Inhalte.
  • Konfiguration sowie alle Zugangsdaten, Verschlüsselungsschlüssel oder Token, die für die Wiederherstellung benötigt werden.
  • Externe Speicher oder Dienste, von denen die Anwendung abhängt.
  • Anwendungs- und Datenbankversionen oder Bereitstellungsdetails, die laut dokumentiertem Wiederherstellungsverfahren erforderlich sind.
Ermitteln Sie, was die Anwendung benötigt

Prüfen Sie, wie und wann die einzelnen Komponenten gesichert werden

Klären Sie, ob zusammengehörige Komponenten gemeinsam oder nach unabhängigen Zeitplänen gesichert werden. Überlegen Sie, was geschieht, wenn Nutzer Datensätze bearbeiten oder Dateien hochladen oder wenn Hintergrundaufgaben während eines Backups Daten ändern.

Ein Fachartikel warnt ausdrücklich davor, die Datendateien einer laufenden Datenbank zu kopieren, da dies keine zuverlässige Sicherungsmethode ist: [Stackademic, „Self-hosting without panic (10/12): Backups that restore“](https://blog.stackademic.com/self-hosting-without-panic-10-12-backups-that-restore-the-only-kind-that-counts-e11c1d08c7d8). Diese Warnung bezieht sich auf das Kopieren aktiver Datendateien. Sie bedeutet nicht, dass für jede Datenbank dasselbe Backup-Verfahren erforderlich ist. Befolgen Sie das für Ihre Datenbank und Anwendung dokumentierte Verfahren.

  • Werden Datenbank und Dateien gemeinsam oder nach unterschiedlichen Zeitplänen gesichert?
  • Falls sie getrennt gesichert werden: Wie stellt der Prozess sicher, dass sie einen kompatiblen Anwendungszustand abbilden?
  • Wie werden aktive Änderungen, Uploads, geplante Jobs und Hintergrundverarbeitung während der Sicherung gehandhabt?
  • Dokumentiert die Anwendung ein Backup- oder Wartungsverfahren, das befolgt werden sollte?

Klären Sie, was der Hosting-Anbieter übernimmt

Der Begriff „Backup“ legt nicht fest, was ein Hosting-Anbieter einschließt. Klären Sie, ob sein Verfahren die Datenbank, den dauerhaften Dateispeicher und weitere für die Anwendung erforderliche Zustände umfasst und ob zusammengehörige Komponenten aufeinander abgestimmt werden.

Airbip betreibt Anwendungsinstanzen als Docker-Workloads auf Airbip-Cloud-Servern und bietet konfigurierbare tägliche, wöchentliche und monatliche Backups. Diese Funktionen belegen für sich allein jedoch nicht, was ein bestimmtes Backup umfasst, wie die Komponenten aufeinander abgestimmt werden oder was bei einer Wiederherstellung zurückgewonnen wird. Klären Sie den Umfang und das Wiederherstellungsverfahren für Ihre Instanz, statt diese aus dem Zeitplan abzuleiten.

Halten Sie die Antworten des Anbieters sowie alle Wiederherstellungsaufgaben schriftlich fest, für die Sie verantwortlich sind – einschließlich der Frage, wer eine Wiederherstellung anfordert und wer sie überprüft.

  • Welche Daten und Speicherorte sind enthalten, und was ist ausgeschlossen oder wird separat behandelt?
  • Stimmt der Anbieter die Sicherung von Datenbank und Dateien aufeinander ab, und welche Konsistenz kann er bestätigen?
  • Wer startet eine Wiederherstellung, stellt die erforderlichen Anwendungsinformationen bereit und prüft den wiederhergestellten Dienst?
  • Wo können Sie den aktuellen Backup-Zeitplan und die geltenden Servicebedingungen einsehen?

Stellen Sie die Anwendung gemäß ihren Anweisungen wieder her

Für jede selbst gehostete Anwendung gilt eine andere Wiederherstellungsreihenfolge. Befolgen Sie die offiziellen Wiederherstellungsanweisungen der Anwendung und das Verfahren des Anbieters. Klären Sie Abhängigkeiten, bevor Sie beginnen, stellen Sie zusammengehörige Komponenten als kompatible Einheit wieder her und prüfen Sie, wann die Anwendung wieder gestartet beziehungsweise Nutzer und Hintergrundjobs wieder verbunden werden können.

Verwenden Sie eine isolierte Testumgebung, sofern Ihr Plan nicht ausdrücklich ein anderes Vorgehen vorsieht. Lassen Sie die wiederhergestellten Daten während des Tests von der Produktionsumgebung getrennt.

  • Prüfen Sie die Zielumgebung und die erforderlichen Zugriffsrechte für die Wiederherstellung.
  • Rufen Sie die benötigte Konfiguration und Geheimnisse über das dafür vorgesehene sichere Verfahren ab.
  • Stellen Sie Datenbank und Dateien nach dem dokumentierten Verfahren wieder her und bewahren Sie ihre vorgesehene Beziehung zueinander.
  • Dokumentieren Sie Komponenten, die neu erstellt oder erneut verbunden werden müssen, statt sie aus einem Backup wiederherzustellen.

Prüfen Sie verknüpfte Datensätze und den normalen Anwendungsbetrieb

Ein Wiederherstellungstest liefert einen praktischen Nachweis, dass sich Backups verwenden lassen. Wählen Sie einen repräsentativen Backup-Satz aus und testen Sie ihn in einer isolierten Umgebung. Prüfen Sie gewöhnliche Datensätze ebenso wie solche mit Anhängen – nicht nur, ob die Datenbank oder Anwendung startet.

Vergleichen Sie wiederhergestellte Daten mit bekannten Beispielen aus der Quellumgebung, einschließlich aktueller Änderungen, die im ausgewählten Backup enthalten sein sollten. Falls etwas fehlt, halten Sie das Problem fest und untersuchen Sie, ob es mit dem Umfang, dem Zeitpunkt der Sicherung, dem Wiederherstellungsverfahren oder einer externen Abhängigkeit zusammenhängt.

  • Öffnen Sie repräsentative Datensätze und prüfen Sie, ob ihre Anhänge oder verknüpften Dateien zugänglich sind.
  • Prüfen Sie, ob aktuelle Datensätze und Änderungen, die im ausgewählten Backup enthalten sein sollten, vorhanden sind.
  • Falls sich das in der Anwendung überprüfen lässt, suchen Sie nach verwaisten Dateien oder Datensätzen, die auf fehlende Dateien verweisen.
  • Testen Sie einen normalen Anwendungsablauf und nicht nur eine erfolgreiche Anmeldung.
  • Dokumentieren Sie, was wiederhergestellt wurde, welche Fehler oder fehlenden Daten auftraten und welche manuellen Wiederherstellungsschritte erforderlich waren.

Dokumentieren und überprüfen Sie den Wiederherstellungsplan regelmäßig

Führen Sie eine kurze Backup-Dokumentation an einem Ort, an dem das Wiederherstellungsteam sie finden kann. Unterscheiden Sie zwischen bestätigten Angaben, Annahmen und offenen Fragen. Ein Backup-Zeitplan beschreibt, wie häufig Backups erstellt werden können; er belegt für sich allein weder Aufbewahrungsdauer noch Abdeckung oder Konsistenz.

Aktualisieren Sie die Dokumentation, wenn sich Anwendung, Speicher, Konfiguration oder Hosting ändern, und überprüfen Sie sie regelmäßig entsprechend Ihren betrieblichen Anforderungen. Falls eine wichtige Angabe noch nicht bestätigt ist, kennzeichnen Sie sie als ungeprüft und entscheiden Sie, ob Sie eine dokumentierte Auskunft einholen oder sie testen.

  • Dokumentieren Sie bestätigte Abdeckung, Ausschlüsse, Zeitplan, Aufbewahrungsdauer und das Verfahren für den Zugriff auf Backup-Daten.
  • Legen Sie fest, wer den Anbieter kontaktiert, anwendungsbezogene Informationen bereitstellt und eine Wiederherstellung überprüft.
  • Bewahren Sie datierte Ergebnisse von Wiederherstellungstests auf, einschließlich fehlgeschlagener Prüfungen und Folgeaktionen.
  • Prüfen Sie nach Änderungen die Abhängigkeiten erneut und wiederholen Sie die relevanten Wiederherstellungstests.

Häufige Fragen

Reicht es aus, wenn sowohl von der Datenbank als auch von den Dateien Backups vorhanden sind?

Nicht unbedingt. Sie können zu unterschiedlichen Zeitpunkten erstellt worden sein, oder ein Backup lässt eine weitere von der Anwendung benötigte Komponente aus. Klären Sie Umfang und Abstimmung und testen Sie anschließend eine Wiederherstellung anhand von Datensätzen, die mit Dateien verknüpft sind.

Kann ich eine laufende Datenbank sichern, indem ich ihre Datendateien kopiere?

Ein Fachartikel warnt ausdrücklich davor, da das Kopieren der Datendateien einer laufenden Datenbank nicht zuverlässig ist. Befolgen Sie das dokumentierte Verfahren für Ihre Datenbank und Anwendung, statt davon auszugehen, dass diese Methode sicher ist.

Welche Reihenfolge ist bei der Wiederherstellung einer selbst gehosteten Anwendung richtig?

Es gibt keine einheitliche Reihenfolge für alle Anwendungen. Befolgen Sie die offiziellen Wiederherstellungsanweisungen der Anwendung und das Verfahren des Hosting-Anbieters. Klären Sie Abhängigkeiten, bevor Sie die Wiederherstellung starten und den Dienst neu starten.

Garantiert ein Backup beim Managed Hosting, dass meine Anhänge und die Datenbank synchronisiert sind?

Ein Zeitplan allein belegt weder, was enthalten ist, noch ob Komponenten gemeinsam gesichert werden. Bitten Sie den Anbieter, Umfang, Abstimmung, Ausschlüsse und das Wiederherstellungsverfahren für Ihre Instanz zu bestätigen.

Woran erkenne ich, ob ein Wiederherstellungstest erfolgreich war?

Prüfen Sie mehr als nur, ob der Dienst startet. Überprüfen Sie repräsentative Datensätze und Anhänge, aktuelle Änderungen, die im ausgewählten Backup enthalten sein sollten, sowie einen normalen Anwendungsablauf. Dokumentieren Sie fehlende Daten, Fehler und manuelle Wiederherstellungsschritte.

Quellen und weiterführende Literatur

  1. Self-Hosted: Backups and Restores — Hudu Support
  2. Self-hosting without panic (10/12): Backups that restore — Stackademic
  3. How often do you test a full restore of your self-hosted ... — Reddit