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ícioDescrição
Backup a quentePode ser executado com o MySQL em funcionamento, sem travar ou bloquear tabelas.
Alta performanceMuito mais rápido do que dumps SQL em bancos grandes.
Suporte a incrementalPossibilita backups diferenciais e incrementais.
Recuperação precisaRestauraçã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)

bash
sudo apt update
sudo apt install percona-xtrabackup-80

Para CentOS/RHEL:

bash
sudo 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

bash
xtrabackup --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

  1. Backup completo inicial: xtrabackup --backup --target-dir=/backups/full --user=root --password=senha
  2. 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:

bash
xtrabackup --prepare --target-dir=/backups/full

Para backup incremental:

  1. Prepare o full (sem aplicar logs):
bash
xtrabackup --prepare --apply-log-only --target-dir=/backups/full
  1. Aplique o incremental:
bash
xtrabackup --prepare --apply-log-only --target-dir=/backups/full --incremental-dir=/backups/incr_1
  1. Finalize:
bash
xtrabackup --prepare --target-dir=/backups/full

🔄 Como restaurar o backup MySQL com XtraBackup

  1. Pare o MySQL:
bash
sudo systemctl stop mysql
  1. Copie os arquivos para o diretório de dados:
bash
rsync -av /backups/full/ /var/lib/mysql/
  1. Ajuste permissões:
bash
chown -R mysql:mysql /var/lib/mysql
  1. Inicie o MySQL:
bash
sudo 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:

bash
chmod +x backup_xtrabackup.sh

Adicione ao cron:

bash
crontab -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.


Leitura recomendada