3.7 KiB
3.7 KiB
MANUAL TÉCNICO - MANUTENÇÃO, BACKUP E RESTORE - ZAMMAD
Código: ITGENG 0003/26 | Classificação: CRÍTICO Responsável: João Pedro Toledo Gonçalves | Data: {{DATA_ATUAL}}
1. HISTÓRICO DE REVISÃO
| Data | Versão | Descrição | Autor |
|---|---|---|---|
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
2. OBJETIVO
Garantir a continuidade do negócio através de rotinas de Backup, procedimentos de Atualização e Plano de Restore (Disaster Recovery).
3. PRÉ-REQUISITOS
- Acesso Root ao servidor.
- Downtime agendado (para Restore).
4. PASSO A PASSO (EXECUÇÃO)
Etapa 1: Rotina de Backup (Docker)
O Zammad via Docker não tem backup automático nativo no cron do host, você deve criar um script.
- Crie o script
/opt/zammad-docker-compose/backup.sh:#!/bin/bash cd /opt/zammad-docker-compose docker compose exec zammad-railsserver /usr/local/bin/zammad-backup # Os arquivos ficarão em /var/tmp/zammad (dentro do volume) # Mova para o host: timestamp=$(date +%Y-%m-%d) docker cp $(docker compose ps -q zammad-railsserver):/var/tmp/zammad_backup_${timestamp}.tar.gz /mnt/backup/ - Adicione ao Crontab (
crontab -e):0 2 * * * /opt/zammad-docker-compose/backup.sh
Etapa 2: Rotina de Backup (Pacote)
Instalações via pacote já possuem script nativo.
- Edite a config:
zammad run rails r "Setting.set('backup_dir', '/mnt/backup_externo')" - Verifique o Cron:
/etc/cron.d/zammad
Etapa 3: Procedimento de Restore
⚠️ PERIGO: Isso apaga os dados atuais.
Para Docker:
- Pare o serviço:
docker compose stop. - Limpe o banco (se necessário) ou suba um ambiente limpo.
- Coloque o arquivo
.tar.gzdo backup na pasta mapeada. - Execute:
docker compose exec zammad-railsserver /usr/local/bin/zammad-restore /path/to/backup_file - Reinicie:
docker compose start.
Etapa 4: Atualização de Versão (Update)
Docker:
- Edite o
.envoudocker-compose.ymlmudando a Tag da versão (ex:6.1para6.2). - Pull e Up:
docker compose pull docker compose up -d- O container cuidará das migrações de banco (db:migrate).
5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING)
!!! warning "Pânico: Restore Falhou" O backup não sobe ou o sistema quebrou após update.
Problema 1: Versão do PostgreSQL incompatível no Restore
- Erro:
pg_restore: [archiver] unsupported version (1.14) of input file. - Causa: Você fez backup num Postgres 15 e tentou restaurar num Postgres 12.
- Solução: O ambiente de destino DEVE ter a mesma versão ou superior do Banco de Dados. Atualize o Docker do Postgres.
Problema 2: "Migrations Pending" após Update
- Sintoma: Tela de "Maintenance" eterna.
- Solução: Force a migração manual:
docker compose exec zammad-railsserver rails db:migrate docker compose restart
Problema 3: Disco cheio durante Backup
- Causa: O directorio
/var/tmplotou. - Solução: Configure o
backup_dirpara um mountpoint externo (NFS/S3) ou limpe backups antigos (> 7 dias).
6. DADOS TÉCNICOS
| Componente | Local Padrão (Pacote) | Nota |
|---|---|---|
| Arquivos | /opt/zammad |
Código fonte e assets. |
| Banco | /var/lib/postgresql |
Dados críticos. |
| Storage | /opt/zammad/storage |
Anexos de tickets (se local). |
7. VALIDAÇÃO FINAL
- O arquivo de backup
.tar.gzé gerado diariamente e tem tamanho coerente (> 10MB)? - O script de restore finalizou com "Restore completed successfully"?