Daten sichern und wiederherstellen#
Die IT-Dokumentation enthält geschäftskritische Daten — Netzwerkpläne, Vertragsinformationen, Zugangsdaten und Konfigurationen. Ein Datenverlust durch Hardwareausfall, Fehlbedienung oder einen Angriff kann schwerwiegende Folgen haben. Deshalb gehört i-doit in jede Backup-Strategie.
Drei Bereiche müssen gesichert werden:
- Datenbanken — System- und Mandantendatenbank(en)
- Dateien — das i-doit-Installationsverzeichnis inkl. hochgeladener Dokumente
- Systemkonfiguration — Apache, PHP, MariaDB
Einfachster Weg: system:tenant-export
Seit i-doit v38 gibt es den console-Befehl system:tenant-export, der Datenbank und Dateien in einem Schritt als ZIP exportiert. Für regelmäßige automatisierte Backups ist das die empfohlene Methode.
Backup über die Console (empfohlen)#
Seit Version 38 bietet die i-doit console die Befehle system:tenant-export und system:tenant-import. Sie exportieren bzw. importieren einen kompletten Mandanten — Datenbank und hochgeladene Dateien — in einem ZIP-Paket. Das ist der einfachste und sicherste Weg für ein vollständiges Backup.
Export (Backup erstellen)#
1 2 | |
Das erzeugt ein ZIP-Archiv im i-doit-Verzeichnis, das sowohl den Datenbank-Dump als auch alle hochgeladenen Dateien enthält.
Import (Backup wiederherstellen)#
1 2 3 4 5 6 7 | |
Optionen:
| Parameter | Beschreibung |
|---|---|
--file | Pfad zur ZIP-Datei aus dem Export |
--tenant-database-name | Name der Mandanten-Datenbank |
--tenant-title | Anzeigename des Mandanten |
--with-system-settings | Systemweite Einstellungen mit importieren |
--with-tenant-settings | Mandantenspezifische Einstellungen importieren |
--db-root-user / --db-root-pass | Datenbank-Root-Zugangsdaten (nötig um die Datenbank anzulegen) |
--db-host / --db-port | Datenbank-Host und Port (Standard: localhost:3306) |
Als Cronjob einrichten#
Für tägliche automatische Backups:
1 2 | |
Backup extern sichern
Ein Backup, das nur auf demselben Server liegt, schützt nicht vor Hardwareausfällen. Kopiere die ZIP-Dateien regelmäßig auf ein externes System — per rsync, scp oder auf ein Netzlaufwerk.
Manuelles Backup#
Falls du eine ältere i-doit-Version einsetzt oder mehr Kontrolle über den Backup-Prozess brauchst, kannst du Datenbank und Dateien auch manuell sichern.
Datenbanken sichern#
Verwende mysqldump für den Datenbank-Export. Während des Backups sollte niemand mit i-doit arbeiten — stoppe dazu am besten den Webserver:
1 2 3 4 5 6 7 8 | |
Deaktiviere auch Cronjobs während der Sicherung.
Wiederherstellen:
1 | |
Foreign Key Constraints
Beim Wiederherstellen kann MariaDB mit errno: 150 "Foreign key constraint is incorrectly formed" abbrechen. Das passiert, weil Tabellen einzeln wiederhergestellt werden und dabei Referenzen auf noch nicht existierende Tabellen entstehen.
Lösung: Lösche die Datenbanken vor der Wiederherstellung:
1 2 | |
Dateien sichern#
Sichere das gesamte i-doit-Verzeichnis:
1 | |
Wiederherstellen:
1 | |
Danach die Dateiberechtigungen prüfen:
1 | |
Systemkonfiguration sichern#
Sichere die Konfigurationsdateien von Apache, PHP und MariaDB:
1 2 3 4 | |
Idealerweise hast du die Anpassungen bereits bei der Installation dokumentiert und sicher hinterlegt.
Backup-Script#
Für eine einfache, automatisierte Sicherung kannst du ein Bash-Script verwenden. Ein Beispiel findest du unter Backup-Script für Daten und Dateien.
Empfehlung
Für neue Installationen (ab v38) ist system:tenant-export als Cronjob die einfachere und zuverlässigere Lösung, weil Datenbank und Dateien in einem konsistenten Paket gesichert werden.
VM-Snapshots#
Häufig läuft i-doit auf einer virtuellen Maschine. Ein Snapshot im laufenden Betrieb ist allerdings kein zuverlässiges Backup — die Datenbank hält Daten im Arbeitsspeicher, die beim Snapshot möglicherweise nicht auf der Festplatte angekommen sind.
Wenn du Snapshots nutzen willst, stoppe vorher die Datenbank:
1 2 3 4 5 | |
VM-Snapshots sind eine gute Ergänzung, aber kein Ersatz für ein reguläres Backup.
Best Practices#
- Regelmäßigkeit — sichere täglich, mindestens vor jedem Update
- Restore testen — ein Backup ist nur so gut wie der letzte erfolgreiche Restore-Test. Stelle regelmäßig auf einem Testsystem wieder her
- Extern lagern — Backups gehören nicht auf denselben Server. Kopiere sie auf ein Netzlaufwerk, einen Backup-Server oder verschlüsselt in die Cloud
- Verschlüsseln — wenn Backups das Haus verlassen, verschlüssele sie (z.B. mit
gpg). Deine CMDB enthält sensible Infrastrukturdaten - Aufbewahrungsfrist — halte mehrere Generationen vor (z.B. 7 Tages-Backups + 4 Wochen-Backups), damit du auch ältere Stände wiederherstellen kannst
- Dokumentieren — halte den Restore-Prozess schriftlich fest, damit auch Kollegen im Notfall eine Wiederherstellung durchführen können
Für die komplette Migration auf einen anderen Server lies den Artikel Umzug einer Installation unter Linux.