Backup e Restauração¶
OTOBO possui scripts internos para backup e restauração. Execute os scripts com a opção -h
para obter mais informações.
Backup¶
Nota
Para criar um backup, é necessário permissão de gravação para o usuário otobo
no diretório de destino.
otobo> /opt/otobo/scripts/backup.pl -h
Saída do script:
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.
Restaurar¶
Nota
Para restaurar o banco de dados, certifique-se de que o banco de dados otobo
existe e não contém tabelas.
otobo> /opt/otobo/scripts/restore.pl -h
Saída do script:
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.
Considerações para executar OTOBO no Docker¶
Os mesmos scripts podem ser usados com OTOBO em execução no Docker. No entanto, algumas limitações específicas do Docker devem ser consideradas.
Primeiro, precisamos nos certificar de que os arquivos de backup não sejam criados no sistema de arquivos interno do contêiner. Porque nesse caso todos os dados seriam perdidos quando o contêiner fosse interrompido. Portanto, o diretório de backup deve estar em um volume. Por enquanto, consideramos apenas o caso mais simples, em que o diretório de backup é um diretório local no host Docker. A localização do diretório de backup no contêiner pode ser escolhida arbitrariamente. Neste exemplo, escolhemos o diretório local otobo_backup
como o local no host, e /otobo_backup
como o local no contêiner.
Primeiro, precisamos criar o volume.
# 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
Para criar o backup, precisamos de um banco de dados em execução e os volumes otobo_opt_otobo
e otobo_backup
. Isso significa que o servidor da Web e o Daemon podem, mas não precisam, ser interrompidos.
# 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
Para restaurar o backup, também precisamos especificar qual backup deve ser restaurado. O placeholder <TIMESTAMP>
é algo como 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>