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:
- Zielsystem oder isolierter Testcontainer
- gewünschter Sicherungszeitpunkt
- Rückkehrweg und aktuelle zusätzliche Sicherung
- Umgang mit bestehenden Datenbanken und Collections
- erwartete Ausfallzeit
- 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.