sections.operations
Sicherung und Wiederherstellung
Nächtlicher Aufbewahrungs-Durchlauf, Sicherungsskripte unter `scripts/backup/` und ein dokumentierter Wiederherstellungspfad für Mongo, Postgres und MinIO.
Sicherung und Wiederherstellung
Skrum ist die All-in-one-KI-Projektsteuerung — Team-Chat, Aufgaben und Sprints, native Videomeetings und eingehende Code-Aktivität in einem Arbeitsbereich, wobei jede KI-Aktion auf eine menschliche Freigabe wartet.
Sicherungen liegen in der Verantwortung des Betreibers. Skrum liefert Skripte und den Aufbewahrungs-Durchlauf; ihr stellt Zeitplan, externes Ziel, Überwachung und Wiederherstellungsübungen bereit.
Wiederherstellungsziele und Zeitplan
- Empfohlener Rhythmus: jede Nacht ein vollständiger Satz und vierteljährlich eine Wiederherstellungsübung. Wer keinen Tagesverlust toleriert, sichert mindestens alle sechs Stunden.
- RPO: höchstens der Abstand zwischen erfolgreichen Sätzen zuzüglich der Dauer eines unterbrochenen Laufs. Eine nächtliche Sicherung erreicht 24 Stunden nur bei überwachten, erfolgreichen Läufen.
- RTO: durch eine zeitgemessene Wiederherstellung produktionsnaher Daten bestimmen. Vier Stunden sind ein erster Betriebswert; maßgeblich ist das Messergebnis.
- Aufbewahrung: als Startwert 7 tägliche, 4 wöchentliche und 12 monatliche vollständige Sätze; mindestens eine Kopie außerhalb von Anwendungshost und primärem Objektspeicher.
Warnt bei verpasstem Lauf, Exit-Code ungleich null oder fehlender MANIFEST.txt. Löscht den letzten bekannten guten Satz erst, wenn der neue Satz samt Prüfsummen vollständig vorliegt.
Sicherung erstellen
./scripts/backup/backup-all.sh
Die Skripte lesen ausschließlich sicherungsbezogene Werte aus der .env im Repository-Stamm, wenn sie im Prozess fehlen. Explizite Variablen — auch leere — haben Vorrang; die Datei wird weder mit source noch mit eval ausgeführt und Geheimnisse werden nicht ausgegeben.
Erforderlich sind MONGODB_URI, DATABASE_URL, S3_ENDPOINT, S3_ACCESS_KEY, S3_SECRET_KEY und S3_BUCKET. BACKUP_TARGET=local schreibt nach BACKUP_DIR; BACKUP_TARGET=s3 lädt unter BACKUP_S3_PREFIX hoch. Mongo, Postgres und Objektspeicher werden nacheinander gesichert. Pausiert eingehende Schreibvorgänge und Worker für ein ruhiges, konsistentes Wiederherstellungsfenster.
Aufbewahrungs-Durchlauf
Ein täglicher retention-sweep-BullMQ-Job archiviert löschfähige Nachrichten, Aufgabenkommentare und Arbeitsgraph-Ereignisse verlustfrei in den Kaltspeicher unter archive/{accountId}/{kind}/{sha256}.ndjson.gz, bevor sie gelöscht werden. Die Aufbewahrungstage je Stufe folgen historyDays (30 / 90 / 365 / unbegrenzt). Unbegrenzte Stufen tun nichts.
Erwartungen an die Wiederherstellung
Die Wiederherstellung ist destruktiv: Mongo verwendet --drop, Postgres --clean --if-exists, und die Objektspeicher-Spiegelung entfernt überschüssige Objekte. Plant ein Wartungsfenster, stoppt API-/Worker-Schreibvorgänge und prüft die Zielsysteme.
./scripts/backup/restore-all.sh <BACKUP_SET_DIR_OR_S3_URI>
Der Befehl prüft Manifest und sämtliche Archiv-Prüfsummen vor jeder Änderung und stellt dann Mongo, Postgres und MinIO wieder her. Vor dem Öffnen für Schreibzugriffe:
- API und Worker starten und alle Healthchecks abwarten.
- Anmeldung sowie bekannte Workspace-, Projekt-, Aufgaben-, Nachrichten- und Datei-Downloads prüfen.
- Queue-Tiefe, Migrationsstand und aktuelle Audit-Ereignisse prüfen.
- Start-/Endzeit, Sicherungssatz und Smoke-Test-Ergebnis im Wiederherstellungsprotokoll festhalten.
FAQ
- Verwaltetes Hosting? Sicherungen liegen bei der verwalteten Stufe in unserer Verantwortung.
- Kann ich das Aufbewahrungsfenster überschreiben? Ja —
retention_policiesje Konto begrenzt nur nach unten. - Ersetzt die Anwendungsaufbewahrung Disaster-Recovery-Sätze? Nein, die Lebensdauer vollständiger Sicherungssätze ist eine separate Betriebsrichtlinie.
Siehe auch: Skrum-Dokumentation