Backup und Wiederherstellung¶
OTOBO bietet fertige Skripte zum Erstellen und Wiedereinspielen von Backups. Für weitere Informationen führen Sie diese mit der Option -h
aus.
Backup¶
Bemerkung
Der Benutzer otobo
benötigt im Zielverzeichnis Schreibrechte, damit ein neues Backup erstellt werden kann.
otobo> /opt/otobo/scripts/backup.pl -h
Die Ausgabe des Skriptes:
Backup an OTOBO system.
Usage:
backup.pl -d /data_backup_dir [-c gzip|bzip2] [-r DAYS] [-t fullbackup|nofullbackup|dbonly]
backup.pl --backup-dir /data_backup_dir [--compress gzip|bzip2] [--remove-old-backups DAYS] [--backup-type fullbackup|nofullbackup|dbonly]
Short options:
[-h] - Display help for this command.
-d - Directory where the backup files should place to.
[-c] - Select the compression method (gzip|bzip2). Default: gzip.
[-r DAYS] - Remove backups which are more than DAYS days old.
[-t] - Specify which data will be saved (fullbackup|nofullbackup|dbonly). Default: fullbackup.
Long options:
[--help] - same as -h
--backup-dir - same as -d
[--compress] - same as -c
[--remove-old-backups DAYS] - same as -r
[--backup-type] - same as -t
Help:
Using -t fullbackup saves the database and the whole OTOBO home directory (except /var/tmp and cache directories).
Using -t nofullbackup saves only the database, /Kernel/Config* and /var directories.
With -t dbonly only the database will be saved.
Override the max allowed packet size:
When backing up a MySQL one might run into very large database fields. In this case the backup fails.
For making the backup succeed one can explicitly add the parameter --max-allowed-packet=<SIZE IN BYTES>.
This setting will be passed on to the command mysqldump.
Output:
Config.tar.gz - Backup of /Kernel/Config* configuration files.
Application.tar.gz - Backup of application file system (in case of full backup).
VarDir.tar.gz - Backup of /var directory (in case of no full backup).
DataDir.tar.gz - Backup of article files.
DatabaseBackup.sql.gz - Database dump.
Wiederherstellen¶
Bemerkung
Bevor Sie die Datenbank wiederherstellen, stellen Sie sicher, dass die Datenbank ``otobo``vorhanden ist und keine Tabellen enthält.
otobo> /opt/otobo/scripts/restore.pl -h
Die Ausgabe des Skriptes:
Restore an OTOBO system from backup.
Usage:
restore.pl -b /data_backup/<TIME>/ -d /opt/otobo/
Options:
-b - Directory of the backup files.
-d - Target OTOBO home directory.
[-h] - Display help for this command.
Sonderfalll: OTOBO und Docker¶
Auch für Docker-basierte OTOBO-Umgebungen können die OTOBO-Standardskripte verwendet werden. Beachten Sie jedoch einige Docker-spezifische Besonderheiten.
Besonders wichtig: Legen Sie die Backupdateien nicht im internen Dateisystem des Containers ab. Wird der Container gestoppt, sind die Daten dort verloren. Stattdessen empfehlen wir das Backup-Verzeichnis in einem Volume anzulegen. Wir betrachten zunächst nur den einfachsten Fall: Als Backup-Verzeichnis wird ein lokales Verzeichnis auf dem Docker-Host verwendet. Innerhalb des Containers kann das Backup-Verzeichnis an beliebiger Stelle angelegt werden. Für dieses Beispiel verwenden wir das lokale Verzeichnis otobo_backup
als Speicherort auf dem Host und /otobo_backup
als Location im Container.
Als erstes legen wir das Volume an.
# create the backup directory on the host
docker_admin> mkdir otobo_backup
# create the Docker volume
docker_admin> docker volume create --name otobo_backup --opt type=none --opt device=$PWD/otobo_backup --opt o=bind
# inspect the volume out of curiosity
docker_admin> docker volume inspect otobo_backup
Um das Backup zu erstellen, benötigen wir eine laufende Datenbank und die Volumes otobo_opt_otobo
sowie otobo_backup
. Das bedeutet, Webserver und Daemon können, müssen aber nicht gestoppt werden.
# create a backup
docker_admin> docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest scripts/backup.pl -d /otobo_backup
# check the backup file
docker_admin> tree otobo_backup
Um das System aus einem Backup wiederherstellen zu können, müssen wir angeben, welches Backup verwendet werden soll. Der Platzhalter <TIMESTAMP>
steht für einen Wert wie 2020-09-07_09-38
.
# create a backup
docker_admin> docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest scripts/restore.pl -d /opt/otobo -b /otobo_backup/<TIMESTAMP>