Pular para o conteúdo

← Documentação

Bancos de dados e aplicativos

Arquivo aberto de banco de dados não é backup: no meio de uma gravação, a cópia sai inconsistente. O plano roda o dump antes e leva o arquivo do dump. No Zimbra, o próprio agente exporta cada conta.

PostgreSQL, MySQL, MariaDB e MongoDB

Em Planos → Novo plano, num servidor Linux, a seção Comandos antes e depois do backup traz receitas prontas. Escolha o banco e clique em Preencher os comandos: o painel preenche o comando que gera o dump antes do backup, o que apaga o dump depois, e põe a pasta do dump no plano. Confira o que foi escrito antes de salvar.

  • PostgreSQL: pg_dumpall como o usuário postgres, todos os bancos num arquivo, em /var/backups/arkame/postgres.
  • MySQL e MariaDB: mariadb-dump ou mysqldump, o que houver, com --single-transaction, em /var/backups/arkame/mysql.
  • MongoDB: mongodump compactado, em /var/backups/arkame/mongodb.

As receitas não levam senha no comando. Se o seu banco pede uma, ponha-a no arquivo de credenciais do próprio banco (.pgpass, /root/.my.cnf), com permissão 600. Gravar comandos exige ser dono ou administrador da organização e o código da verificação em duas etapas, e não vale para o agente em Docker.

SQL Server (Windows)

Com o agente Arkame 0.5.0 ou mais novo, a receita do SQL Server faz um backup do tipo cópia (COPY_ONLY), que não interfere nos backups do próprio SQL Server, em C:\ProgramData\Arkame\dumps\sqlserver. Ela pede o nome do banco e, se houver, da instância (SQLEXPRESS).

O agente roda como Sistema Local: no SQL Server, dê ao login NT AUTHORITY\SYSTEM o papel db_backupoperator no banco. Precisa do sqlcmd no servidor.

Zimbra

Com o agente Arkame 0.5.0 ou mais novo num servidor com o Zimbra, a receita Zimbra aparece no plano. O agente fala com a API do próprio Zimbra, em localhost, e exporta conta por conta, sem zmmailbox e sem parar o serviço.

O que vai para o backup, por conta

  • As mensagens de todas as pastas, Lixeira e Spam inclusive, num arquivo por mês: o mês fechado não muda e não sobe de novo.
  • Os contatos, a agenda, as tarefas e os documentos.
  • A configuração da conta (nome, cota, preferências, apelidos, classe de serviço), os filtros de entrada e de saída e as assinaturas.
  • A lista das contas protegidas, para o painel mostrar quais estão no backup, quantos meses cada uma tem e quais falharam.

O que não vai

  • A senha: a API do Zimbra não a entrega, e um backup com o hash da senha de todo mundo seria mais um lugar de onde ela vaza. A conta recriada ganha uma senha aleatória; defina outra no console do Zimbra.
  • Assunto e remetente das mensagens não chegam ao painel: ele vê só os nomes das contas, os meses e os tamanhos.

Como configurar

  1. Em Planos → Novo plano, escolha o servidor do Zimbra e, em Comandos antes e depois do backup, a receita Zimbra.
  2. Escolha todas as mensagens ou as dos últimos 1, 2, 3, 5 ou 10 anos, e as contas que ficam de fora (as do sistema já ficam).
  3. Clique em Preencher os comandos, confira e salve. O plano leva a pasta /var/backups/arkame/zimbra.

A primeira exportação de um servidor grande pode levar algumas sessões: o comando para antes do prazo (até 2 horas) e a sessão seguinte continua de onde parou, começando pelas contas há mais tempo sem backup. De tempos em tempos o agente confere um mês já fechado e o reenvia se mudou: uma mensagem antiga migrada para a caixa entra no backup.

Na tela do plano, o cartão Contas do Zimbra mostra cada conta do último backup, os meses, o tamanho, e as que falharam ou saíram do backup.

Testado no Zimbra 8.8.15, 9 e 10.1. A pasta guarda uma cópia das caixas no disco do servidor: confira o espaço livre antes de ligar.

Mais de um servidor de caixas: instale o agente e crie o plano em cada servidor de caixas. Cada agente exporta só as contas cuja caixa está nele (o atributo zimbraMailHost); as outras aparecem no resumo como fora, com o servidor onde estão, e não como falha. Para restaurar, use o servidor onde a caixa da conta está hoje: uma conta apagada pode ser recriada pelo Zimbra noutro servidor de caixas, e aí a importação das mensagens não está garantida. Essa montagem ainda não foi testada numa instalação real; fale com o suporte antes de ligar.

Restaurar uma conta do Zimbra

  1. No painel, em Restaurar, restaure a pasta contas/ da conta (o nome dela é o endereço) para uma pasta do servidor, por exemplo /restauracao.
  2. No servidor, rode:
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br
  • Conta que existe: recebe só as mensagens, os contatos e a agenda. --settings reaplica também a configuração, os filtros e as assinaturas (a senha nunca).
  • Conta que não existe mais: é recriada com a configuração, a classe de serviço, os apelidos, os filtros e as assinaturas de antes, e uma senha aleatória.
  • O que manda e-mail para fora (encaminhamento, resposta automática, filtro que redireciona) só volta com --with-forwarding: restaurar não pode começar a mandar a caixa de alguém para outro lugar sem que você peça.
  • Em outra conta: --to leva as mensagens para uma conta que já existe, sem mexer na configuração dela.
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br --settings
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br --to arquivo@empresa.com.br

Para ver as contas que o backup protege neste servidor:

sudo arkame-agent zimbra list

Na nuvem ou numa cópia local

O dump e a exportação do Zimbra vão para o armazenamento do plano, como qualquer outra pasta: o seu bucket na nuvem. Para ter também uma cópia no próprio servidor, a restauração mais rápida, crie um segundo plano com Copiar também para outro armazenamento e escolha a cópia local (agente 0.5.0 ou mais novo).

Pronto para proteger o banco?

As receitas ficam no plano do servidor. Gravar comandos pede ser dono ou administrador e o código da verificação em duas etapas.

Criar um plano →