Palavras-chave principais: backup MySQL com XtraBackup, rotina de backup Percona, Percona XtraBackup passo a passo, backup MySQL sem downtime
O que é o Percona XtraBackup?
Percona XtraBackup é uma ferramenta de linha de comando gratuita e open-source que realiza backups físicos e consistentes de bancos MySQL, MariaDB e Percona Server sem downtime.
Diferente do mysqldump
, que faz backup lógico, o XtraBackup copia fisicamente os arquivos de dados, oferecendo velocidade, consistência e integridade — ideal para grandes volumes de dados e ambientes de produção.
Vantagens do XtraBackup no MySQL
Benefício | Descrição |
---|---|
Backup a quente | Pode ser executado com o MySQL em funcionamento, sem travar ou bloquear tabelas. |
Alta performance | Muito mais rápido do que dumps SQL em bancos grandes. |
Suporte a incremental | Possibilita backups diferenciais e incrementais. |
Recuperação precisa | Restauração rápida, ideal para planos de disaster recovery. |
Pré-requisitos
- Servidor Linux com MySQL (InnoDB)
- Acesso root ou sudo
- Armazenamento suficiente para os backups
- Instalar o Percona XtraBackup
Como instalar o XtraBackup (Ubuntu/Debian)
bashsudo apt update
sudo apt install percona-xtrabackup-80
Para CentOS/RHEL:
bashsudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
sudo percona-release setup xtrabackup80
sudo yum install percona-xtrabackup-80
Como fazer backup completo com o XtraBackup
bashxtrabackup --backup --target-dir=/var/backups/mysql/full --user=root --password=senha_segura
--backup
: inicia o processo de backup--target-dir
: diretório onde os arquivos serão salvos--user
e--password
: credenciais do banco
Backup incremental com XtraBackup
- Backup completo inicial:
xtrabackup --backup --target-dir=/backups/full --user=root --password=senha
- Backup incremental baseado no anterior:
xtrabackup --backup --target-dir=/backups/incr_1 --incremental-basedir=/backups/full --user=root --password=senha
Você pode repetir o incremental baseado no último incremental.
Preparar o backup antes de restaurar
Backups feitos pelo XtraBackup precisam ser preparados antes do restore:
Para backup completo:
bashxtrabackup --prepare --target-dir=/backups/full
Para backup incremental:
- Prepare o full (sem aplicar logs):
bashxtrabackup --prepare --apply-log-only --target-dir=/backups/full
- Aplique o incremental:
bashxtrabackup --prepare --apply-log-only --target-dir=/backups/full --incremental-dir=/backups/incr_1
- Finalize:
bashxtrabackup --prepare --target-dir=/backups/full
🔄 Como restaurar o backup MySQL com XtraBackup
- Pare o MySQL:
bashsudo systemctl stop mysql
- Copie os arquivos para o diretório de dados:
bashrsync -av /backups/full/ /var/lib/mysql/
- Ajuste permissões:
bashchown -R mysql:mysql /var/lib/mysql
- Inicie o MySQL:
bashsudo systemctl start mysql
Automatizando backups com Cron
Crie um script backup_xtrabackup.sh
:
#!/bin/bash
DATA=$(date +%F_%H-%M)
DESTINO="/backups/full_$DATA"
xtrabackup --backup --target-dir=$DESTINO --user=root --password='senha_segura'
xtrabackup --prepare --target-dir=$DESTINO
Dê permissão de execução:
bashchmod +x backup_xtrabackup.sh
Adicione ao cron:
bashcrontab -e
Agende para 2h da manhã:
0 2 * * * /caminho/para/backup_xtrabackup.sh >> /var/log/xtrabackup.log 2>&1
Boas práticas com XtraBackup
- Teste regularmente os restores para garantir integridade.
- Mantenha múltiplas cópias e rotação de backups.
- Use um usuário de backup com permissões mínimas, não o root.
- Envie cópias para a nuvem (S3, GCP, Azure) para evitar perda total.
- Monitore logs de backup para identificar falhas automáticas.
Conclusão
Criar uma rotina de backup com XtraBackup no MySQL é uma das formas mais robustas e profissionais de garantir a segurança e disponibilidade dos seus dados. Com backups consistentes, incrementais e rápidos, você protege seu banco contra falhas sem comprometer a performance.