Beiträge in diesem Abschnitt

Ihre Datenbanken sichern und wiederherstellen

Veröffentlicht:
Aktualisiert:

MobilityManager hält alle dauerhaften Daten in seinen Datenbanken: einer Systemdatenbank und einer oder mehreren Mandantendatenbanken. Der Schutz dieser Daten bedeutet, beide zu sichern, ebenso wie die Geheimnisse, die zum Lesen der Daten erforderlich sind. Dieser Artikel gibt praktische Hinweise zum Sichern und Wiederherstellen.

Was gesichert werden muss

  • Systemdatenbank (SystemConnection) — das Mandantenregister, Benutzer, Rollen und die Lizenz.
  • Mandantendatenbank(en) (TenantConnection und die einzelnen Mandantendatenbanken) — Fuhrpark-, Buchungs- und operative Daten.
  • Geheimnisse — der Jwt__Key und der DocumentStorage__LocalEncryptionKey.
  • Gespeicherte Dokumente — jedes lokale Dokumentspeicherverzeichnis, sofern Sie lokalen Speicher verwenden.

Warnung: Eine Datenbanksicherung allein genügt nicht. Wenn Sie den Dokumentverschlüsselungsschlüssel verlieren, können verschlüsselte Dokumente in einer wiederhergestellten Datenbank nicht entschlüsselt werden. Sichern Sie Schlüssel separat und zuverlässig.

PostgreSQL sichern

Verwenden Sie pg_dump für jede Datenbank. Für den Docker-Compose-Stack führen Sie es innerhalb des Datenbankcontainers aus:

docker exec mobilitymanager-postgres \
  pg_dump -U mobilitymanager mobilitymanager_system > system-backup.sql

docker exec mobilitymanager-postgres \
  pg_dump -U mobilitymanager mobilitymanager_tenant > tenant-backup.sql

SQL Server sichern

Verwenden Sie für SQL Server native BACKUP DATABASE-Anweisungen oder die verwalteten Sicherungen Ihrer Plattform. Verlassen Sie sich bei Azure SQL auf automatisierte Sicherungen und die Point-in-Time-Wiederherstellung und exportieren Sie eine .bacpac für portable Kopien.

Tipp: Halten Sie den Sicherungsanbieter konsistent mit Ihrem DatabaseProvider. Sie können einen PostgreSQL-Dump nicht in SQL Server wiederherstellen oder umgekehrt, ohne eine Datenmigration durchzuführen.

Wiederherstellen

  1. Stellen Sie leere Zieldatenbanken bereit, die zu Ihrem Anbieter passen.
  2. Stellen Sie zuerst die Systemdatenbank wieder her, dann die Mandantendatenbank(en).
    psql -U mobilitymanager -d mobilitymanager_system < system-backup.sql
    psql -U mobilitymanager -d mobilitymanager_tenant < tenant-backup.sql
  3. Stellen Sie den Jwt__Key und den Dokumentverschlüsselungsschlüssel in ihrem Secret-Store wieder her.
  4. Richten Sie SystemConnection und TenantConnection auf die wiederhergestellten Datenbanken aus und starten Sie die Anwendung.
  5. Beim Start wendet die Anwendung alle ausstehenden Migrationen an, sodass eine Sicherung aus einem älteren Schema automatisch auf den aktuellen Stand gebracht wird.

Die Wiederherstellung überprüfen

  • Prüfen Sie, ob /healthz den Status 200 zurückgibt.
  • Melden Sie sich an und bestätigen Sie, dass Mandanten, Benutzer und aktuelle Datensätze vorhanden sind.
  • Öffnen Sie ein verschlüsseltes Dokument, um zu bestätigen, dass der Verschlüsselungsschlüssel korrekt wiederhergestellt wurde.

Hinweis: Testen Sie Wiederherstellungen regelmäßig gegen ein Nicht-Produktionsziel. Eine ungetestete Sicherung ist keine verlässliche Sicherung.

Verwandte Artikel

  • Die Datenbank-Verbindungszeichenfolgen konfigurieren
  • Den Schlüssel zur Dokumentverschlüsselung im Ruhezustand konfigurieren
  • Migrationen und die Onboarding-Weiterleitung beim Start
  • Checkliste zur Produktionshärtung
AH
Geschrieben von Alexander Hagemann
Aktualisiert:
Zugriff abgelehnt
Zugriff abgelehnt