Backup & Restore (Docker)
Dieser Abschnitt zeigt einige Grundlagen zum Sicherungs- und Wiederherstellungsprozess für eine auf Docker Compose basierte Installation von Zammad.
Wenn Sie mit Volume-basierten Backup- und Restore-Prozessen in Docker vertraut sind und vielleicht bereits eine andere Methode oder ein anderes Tool verwenden, können Sie diese weiterhin nutzen. Ein Backup würde typischerweise bedeuten, den Stack herunterzufahren, um sicherzustellen, dass alle Dateien aus dem Arbeitsspeicher auf die Festplatte geschrieben werden, dann den Inhalt des Volumes zu sichern und anschließend den Stack wieder zu starten. Wenn Sie eine solche Methode verwenden, können Sie in Erwägung ziehen, das Szenario Backup-Dienst deaktivieren zu verwenden, damit der integrierte Backup- und Restore-Prozess von Zammad nicht aktiviert wird.
Der Rest dieser Seite beschreibt den eingebauten Backup- und Restore-Prozess von Zammads Docker Compose Stack.
Wenn Sie mit Docker vertraut sind, finden Sie im Abschnitt unten die Informationen, die Sie benötigen. Die Seite Docker Datei Handling enthält einige Beispiele für den Umgang mit Sicherungsdateien und das Kopieren in ein Docker-Volume, um es wiederherzustellen.
Backup
Standardmäßig wird jede Nacht um 3 Uhr eine Sicherung erstellt. Die Sicherung wird im Volume des Containers zammad-backup im Verzeichnis /var/tmp/zammad gespeichert. Um eine einmalige Sicherung manuell auszuführen, verwenden Sie je nach Installationsmethode einen der folgenden Befehle.
Führen Sie in Ihrem Docker-Compose-Verzeichnis folgenden Befehl aus:
sh
docker compose run --rm --env BACKUP_ONCE=true zammad-backupRestore
- Starten Sie den neuen Stack mindestens einmal, damit eine Zammad-Datenbank verfügbar ist.
- Stoppen Sie den Stack.
- Falls Sie auf einen produktiven Stack mit aktiviertem Dateisystemspeicher wiederherstellen, sollten Sie den Inhalt des Verzeichnisses
/opt/zammad/storage/innerhalb des Volumes bereinigen. Der Wiederherstellungsprozess fügt dort nur Dateien hinzu bzw. überschreibt sie, es findet keine Bereinigung statt. - Kopieren oder verschieben Sie die Sicherungsdateien nach
/var/tmp/zammad/restore/innerhalb des Volumes des Containers zammad-backup. Beachten Sie, dass der Wiederherstellungsprozess immer die neueste Sicherung gemäß dem Zeitstempel des Dateinamens verwendet. Nur Backups von Paket- und Docker-Installationen werden von dieser eingebauten Backup-Methode unterstützt. Kopieren Sie nicht die Dateienlatest_zammad_*.gz, da sie auf einen für den Wiederherstellungsprozess unbekannten Ort verweisen. - Starten Sie den Stack. Der Wiederherstellungsprozess wird im Dienst
zammad-backupausgelöst, wenn das Verzeichnisrestoreerkannt wird und die Sicherungsdateien vorhanden sind. Im Rahmen dieses Vorgangs wird der Rails-Cache geleert. Alle anderen Container warten, bis die Wiederherstellung abgeschlossen ist, bevor sie ihren normalen Betrieb wieder aufnehmen. - Nachdem der Wiederherstellungsprozess abgeschlossen ist, wurde das Verzeichnis
restoreumbenannt. Sie können es jetzt löschen. - Erstellen Sie den Elasticsearch-Index neu. Sie können Zammad während des Neuaufbaus weiterhin nutzen, allerdings ist die Suchleistung beeinträchtigt und einige Daten sind in den Suchergebnissen möglicherweise vorübergehend nicht verfügbar. Verwenden Sie abhängig von Ihrer Installationsmethode einen der folgenden Befehle.
Ohne Angabe von CPU-Kernen:
sh
docker compose run --rm zammad-railsserver bundle exec rake zammad:searchindex:rebuild
```
Mit Angabe der zu verwendenden CPU-Kerne (Beispiel: 8):
``````sh
docker compose run --rm zammad-railsserver bundle exec rake zammad:searchindex:rebuild[8]
```