Skip to content

Betrieb

Diese Seite beschreibt die Bedienerabläufe zum Schützen und Wiederherstellen von Appliance-Daten: das Erstellen und Wiederherstellen von Datenbank-Backups und das Zurücksetzen auf die vorherige Systemgeneration, wenn ein Update Probleme bereitet. Das Einspielen eines Systemupdates hat eine eigene Seite — siehe Systemupdates. Jeder Abschnitt ist an einen TUI-Bildschirm gebunden, sodass Sie den Assistenten am Bildschirm den hier beschriebenen Schritten zuordnen können.

Systemupdate einspielen

Das Einspielen eines signierten Update-Bundles hat eine eigene Seite — siehe Systemupdates für die vollständige Anleitung: welcher Lieferweg für virtualisierte gegenüber physischen Appliances zu verwenden ist, das eingebaute Sicherheitsnetz aus Backup und Rollback sowie die Fehlerbehebung.

Backup und Wiederherstellung

Der Bildschirm Backup / Restore verwaltet Datenbank-Backups. Die Appliance erstellt nach Zeitplan automatische Backups; Sie können außerdem vor riskanten Aktionen ein zusätzliches Backup anlegen und aus jedem vom Bildschirm gelisteten Backup wiederherstellen.

Was Sie sehen

Das oberste Menü hat zwei Einträge:

  • Create Backup — führt sofort ein Backup aus. Der Bildschirm zeigt bei Erfolg eine grüne Statuszeile mit der Ausgabe des Backup-Befehls oder bei Fehlschlag einen roten Fehler.
  • List / Restore Backups — öffnet die unten beschriebene Auswahl.

Wählen Sie List / Restore Backups, sehen Sie jede auf der Appliance vorhandene Backup-Datei zeilenweise mit Dateinamen, Größe (KB, MB oder GB) und Änderungszeitpunkt. Das zuletzt geänderte Backup ist üblicherweise das, das Sie zur Wiederherstellung möchten; die älteren Einträge sind die rollierenden automatischen Backups.

Ein Ad-hoc-Backup erstellen

Bevor Sie etwas Riskantes tun — ein Update, eine größere Konfigurationsänderung, einen Kundenimport — wählen Sie Create Backup und warten Sie auf die grüne Bestätigung. Das Ergebnis ist eine frische Backup-Datei neben den automatischen, und sie liefert Ihnen einen bekannt guten Rücksetzpunkt für die Datenbank, der nicht von der nächsten geplanten Sicherung abhängt.

Ein Backup wiederherstellen

Eine Wiederherstellung überschreibt die laufende Datenbank mit dem Inhalt der gewählten Backup-Datei. Der Bildschirm nimmt das ernst:

  1. Bewegen Sie in List / Restore Backups den Cursor auf das gewünschte Backup und drücken Sie Enter.
  2. Ein Bestätigungsbildschirm erscheint mit einer gelben Warnung — WARNING: This will replace the current database! — und dem Namen der Backup-Datei. Drücken Sie y zur Bestätigung oder n/Esc zum Abbrechen.
  3. Bei Bestätigung läuft die Wiederherstellung, und der Bildschirm zeigt Database restored successfully (grün) oder den zugrunde liegenden Fehler (rot).

Während die Wiederherstellung läuft, wird die Datenbank vollständig ersetzt: Zeilen, die seit dem gewählten Backup geschrieben wurden, gehen verloren, und jeder in der Weboberfläche angemeldete Benutzer sieht seine Sitzung im Moment des Datenbankwechsels abbrechen. Eine Wiederherstellung ist kein teilweiser oder zusammenführender Vorgang — es ist ein vollständiger Austausch, und genau deshalb ist die Warnung deutlich.

Backup vs. Rollback

Backups decken die Datenbank ab. Das System selbst — die NixOS-Generation, die Konfiguration, die installierte Software — wird durch Rollback abgedeckt. Beide ergänzen sich: Ein Backup bringt keinen alten Kernel zurück, und ein Rollback bringt keine gelöschten Datensätze zurück. Sind Sie unsicher, was Sie brauchen, lesen Sie den nächsten Abschnitt.

Rollback

Der Bildschirm Rollback wechselt die Appliance auf eine vorherige Systemgeneration. Verwenden Sie ihn, wenn ein Update Probleme bereitet und Sie schnell die alte Version zurückbrauchen.

Was Rollback tut

Der Bildschirm listet jede NixOS-Generation, die die Appliance noch vorhält, neueste zuerst, mit Nummer, Build-Datum und einer grünen Markierung (current) auf der laufenden Generation. Bewegen Sie den Cursor mit den Pfeiltasten (oder j/k), drücken Sie r, um die Liste zu aktualisieren, und drücken Sie Enter auf einer nicht aktuellen Generation, um den Wechsel zu starten.

Eine Bestätigungsabfrage erscheint mit der Frage Switch to generation N (date)?. Drücken Sie y zur Bestätigung oder n/Esc zum Abbrechen. Bei Bestätigung aktualisiert die Appliance ihre Bootkonfiguration und meldet Switched to selected generation. Ein Neustart ist nötig, damit die Änderung wirksam wird — die laufenden Dienste laufen weiterhin auf der alten (nun neueren) Generation, bis die Appliance neu startet. Starten Sie über den Menüeintrag Reboot System im Hauptmenü neu, sobald der Rollback bestätigt ist.

Was Rollback bewahrt — und was nicht

Rollback ist eine System-, keine Datenoperation. Konkret:

  • Ersetzt: die Wurzelpartition. Der Nix-Store, der Kernel, die Systemkonfiguration und die installierte Software werden auf den Stand der vorherigen Generation zurückgesetzt.
  • Bewahrt: /var und alles darunter. Das umfasst die PostgreSQL-Datenbank von Pulse, Ihre Datenbank-Backups, Logdateien, das SFTP-Austauschverzeichnis und jede über die TUI geschriebene Konfiguration (TLS-Zertifikate, SFTP-Schlüssel, Netzwerkeinstellungen). Nichts davon wird durch den Generationswechsel berührt.

In der Praxis macht ein Rollback den Software-Anteil des letzten Updates rückgängig, behält aber jedes Byte an Kundendaten, das die Appliance seither angesammelt hat.

Wann Rollback, wann ein Backup zurückspielen

Die beiden Wiederherstellungswerkzeuge decken unterschiedliche Fehlerbilder ab; die richtige Wahl ist wichtig.

  • Rollback wenn die neue Software das Problem ist: ein Dienst, der nicht startet, eine Verhaltensregression, ein durch das Update eingeschleppter Kernelfehler, ein abstürzender TUI-Bildschirm. Die Daten sind in Ordnung, der Code nicht. Rollback stellt die vorherige Generation wieder her, ohne Datenbankzeilen zu verlieren.
  • Backup zurückspielen wenn die Daten das Problem sind: Korruption, ein versehentlicher Massenlöschvorgang, ein fehlerhafter Import, der das Schema verschmutzt hat. Der Code ist in Ordnung, die Daten nicht. Die Backup-Wiederherstellung bringt die Datenbank auf einen bekannt guten Stand zurück.

Werden beide benötigt — ein Update ging schief und hat den Zustand auf dem Weg nach draußen beschädigt — spielen Sie zuerst ein Rollback ein, damit die Appliance wieder auf einer funktionierenden Softwareversion läuft, und stellen Sie dann das jüngste Backup vor dem Update wieder her.

Generationen, die nicht mehr erscheinen

NixOS behält nur eine begrenzte Anzahl Generationen auf der Platte. Ältere Generationen werden im normalen Zeitplan der Appliance entfernt, die Liste wächst also nicht endlos. Ist die gewünschte Generation nicht mehr aufgelistet, sind Sie jenseits des Punktes, an dem Rollback helfen kann, und die Appliance muss neu installiert oder durch den Support repariert werden — der Rollback-Bildschirm ist ein kurzfristiges Sicherheitsnetz, kein langfristiges Wiederherstellungsarchiv.

Nach einem erfolgreichen Rollback

Sobald die Appliance auf der vorherigen Generation neu gestartet ist und Sie bestätigt haben, dass das System wieder gesund ist, erstellen Sie über den Bildschirm Backup und Wiederherstellung ein frisches Datenbank-Backup. Der Zustand nach dem Rollback ist nun Ihre bekannte gute Grundlage; ihn ausdrücklich festzuhalten bedeutet, dass der nächste riskante Vorgang einen sauberen Schnappschuss zum Zurückfallen hat statt der älteren automatischen Backups, die noch vor dem gerade ausgestandenen Problem entstanden sind.

War das Update, das den Rollback ausgelöst hat, per SFTP geliefert, ist das Bundle bereits durch den Aufräumvorgang nach dem ursprünglichen (fehlgeschlagenen) Versuch entfernt worden. War es ein USB-Update, ist der Stick nicht mehr eingehängt — ziehen Sie ihn ab, klären Sie mit dem Support, was an diesem Bundle nicht stimmte, und versuchen Sie es erst dann erneut, wenn ein korrigierter Build verfügbar ist. War es ein CD/DVD-ROM-Update, wurde das Laufwerk automatisch ausgehängt und Sie können das ISO sicher von der VM trennen. Es bringt nichts, dasselbe Bundle erneut einzuspielen, das beim letzten Mal fehlgeschlagen ist.