MongoDB sichern und wiederherstellen

MongoDB sichern und wiederherstellen

Bearbeiten

Zweck und geprüfter Stand

Bearbeiten

Die zentrale MongoDB enthält betriebsrelevante MegBes-Daten. Sie wird deshalb mit `mongodump` logisch und konsistent in ein komprimiertes Archiv gesichert. Eine Kopie des laufenden Datenverzeichnisses `/root/mdb/data` gilt nicht als Ersatz für diesen Dump.

Stand: 7. August 2026.

  • MongoDB läuft als Container `mongodb` mit Image `mongo:7.0.12`.
  • Authentisierung ist aktiv; ein nicht angemeldeter Versuch, Datenbanken aufzulisten, wird abgewiesen.
  • MongoDB Database Tools 100.10.0 mit `mongodump` und `mongorestore` sind im Container vorhanden.
  • Der erste neue Dump wurde erfolgreich erstellt sowie per Gzip-Test und SHA-256-Prüfsumme verifiziert.
  • Die automatische Sicherung läuft täglich um 02:17 Uhr Serverzeit (UTC), entsprechend im Sommer 04:17 Uhr in Deutschland.

Sicherungsablage

Bearbeiten

Die Archive liegen ausschließlich root-lesbar unter:

`/root/backups/mongodb/megbes-mongodb-<UTC-Zeitstempel>.archive.gz`

Zu jedem Archiv gehört eine Datei mit SHA-256-Prüfsumme:

`/root/backups/mongodb/megbes-mongodb-<UTC-Zeitstempel>.archive.gz.sha256`

Dateien und Verzeichnis besitzen restriktive Rechte. Die Datenbankzugangsdaten werden weder im Dateinamen noch im Log oder Wiki ausgegeben. `mongodump` erhält das Passwort über eine kurzlebige, nur im Container lesbare Konfigurationsdatei, die anschließend entfernt wird.

Automatisierung

Bearbeiten

Der Benutzer `clawtronics` besitzt einen Cron-Eintrag:

17 2 * * * sudo -n /usr/local/sbin/megbes-admin mongo-backup >> /home/clawtronics/mongo-backup.log 2>&1

Der Cronjob darf nur die fest implementierte Aktion `mongo-backup` des root-eigenen Werkzeugs `megbes-admin` aufrufen. Ein allgemeiner Docker- oder Root-Zugang wird dadurch nicht vergeben.

Manuelle Sicherung

Bearbeiten

Eine zusätzliche Sicherung kann über den freigegebenen Administrationsweg erstellt werden:

sudo -n /usr/local/sbin/megbes-admin mongo-backup

Erfolgskriterien:

  • Ausgabe nennt ein neues Archiv mit UTC-Zeitstempel.
  • Archiv ist nicht leer.
  • `gzip -t` endet erfolgreich.
  • SHA-256-Datei wird erzeugt.

Status und Integritätsprüfung

Bearbeiten

Der aktuelle Stand wird ohne Ausgabe von Datenbankinhalten geprüft:

sudo -n /usr/local/sbin/megbes-admin mongo-backup-status

Die Aktion listet die vorhandenen Archive und prüft beim jüngsten Dump Gzip-Struktur und SHA-256-Prüfsumme.

Wiederherstellung

Bearbeiten

Eine Wiederherstellung wird nicht automatisiert gegen die produktive Datenbank ausgeführt. Vorher sind zwingend festzulegen:

  1. Zielsystem oder isolierter Testcontainer
  2. gewünschter Sicherungszeitpunkt
  3. Rückkehrweg und aktuelle zusätzliche Sicherung
  4. Umgang mit bestehenden Datenbanken und Collections
  5. erwartete Ausfallzeit
  6. Funktions- und Vollständigkeitsprüfung

Die Wiederherstellung erfolgt grundsätzlich mit `mongorestore`, `--archive`, `--gzip` und `--stopOnError`. Passwörter gehören in eine geschützte Konfigurationsdatei und nicht in die Prozessargumente. Der genaue Befehl wird für das konkrete Zielsystem erzeugt und vor Ausführung kontrolliert.

Mindestens einmal nach Einrichtung sowie anschließend regelmäßig ist ein Wiederherstellungstest in einer isolierten MongoDB-Instanz durchzuführen. Erst ein erfolgreich zurückgespielter und fachlich geprüfter Dump gilt als belastbare Sicherung.

Aufbewahrung und externe Kopie

Bearbeiten

Eine automatische Löschung alter Dumps ist noch nicht aktiviert. Vor Einführung einer Rotation sind Aufbewahrungsdauer und externes Sicherungsziel festzulegen. Empfohlen sind mehrere Generationen sowie mindestens eine Kopie außerhalb des Servers; lokale Dumps allein schützen nicht vor Ausfall oder Verlust des gesamten Servers.