Backup MySQL

Este guia ajudará você a fazer um backup completo do seu banco de dados MySQL sem desligar o sistema. Foi escrito e testado pela equipe de devops da Navixy, portanto você pode confiar nele como uma solução conhecida e funcional.

circle-info

Esta instrução é válida para MySQL das versões 8.xx (menor ou igual a 8.0.29) e 5.xx. Ela foi escrita, testada e pode ser aplicada nos seguintes sistemas operacionais:

  • Ubuntu 18.04, 20.04

  • Debian 9, 10, 11

Para outros sistemas operacionais e versões de software, ela pode ser aplicada e adaptada por sua própria conta e risco.

O que você precisa para fazer um backup completo do seu banco de dados MySQL sem desligar o sistema:

Abaixo analisaremos com mais detalhes as etapas que você precisa executar.

Criação de um usuário

Como exemplo, criaremos o usuário chamado bkpuser com os direitos mínimos suficientes para criar um backup completo e a senha s3cret.

Primeiro você precisa entrar no console do MySQL com direitos administrativos, exemplo:

mysql -uroot -p

Em seguida, no console do MySQL, insira os comandos específicos para diferentes versões do MySQL:

MySQL 5.xx

MySQL 8.xx

Volume de backup

Agora precisamos calcular o tamanho do volume adicional para o qual o backup será realizado.

Para determinar o tamanho do volume necessário para o backup do banco de dados, você precisa encontrar o tamanho do seu banco de dados atual e multiplicá-lo por 1,5.

Se o seu banco de dados estiver em um local padrão definido durante a instalação do servidor MySQL, você precisa executar o seguinte comando com privilégios de root:

Se você tiver um local de banco de dados personalizado, deve especificar o caminho do banco de dados como argumento para o comando du, ou seja:

Exemplo de cálculo

Na captura de tela podemos ver que o tamanho atual do banco de dados MySQL é 181 GB. Portanto, o tamanho do volume para fazer backup deste banco de dados deve ser pelo menos 181 * 1.5 = 271,5 GB, arredondado para 272 GB

O cálculo se aplica a uma única cópia do banco de dados. Se você planeja manter mais de uma cópia de backup do banco de dados, lembre-se de multiplicar o resultado pelo número de backups armazenados.

Software de backup

Após conectar o novo volume e criar um sistema de arquivos nele, é necessário instalar o software exigido para o backup do banco de dados. Esse software se chama https://www.percona.com/doc/percona-xtrabackup/LATEST/index.htmlarrow-up-right. Considere instalá-lo usando pacotes de instalação prontos disponíveis nos repositórios do Percona XtraBackup.

A instalação é feita via o pacote que contém o percona-release utilitário de configuração.

Primeiro de tudo, baixe este pacote dos repositórios do Percona XtraBackup com o seguinte comando:

O próximo passo é executar a instalação do pacote baixado usando o utilitário dpkg. Você deve estar root ou usar sudo para executar este comando:

Agora configure os repositórios necessários para esse fim:


Exceção para Debian 10

No Debian 10 a etapa acima retorna um erro:

Para corrigir esse erro, você precisa editar o arquivo /etc/apt/sources.list

Abra este arquivo em qualquer editor de texto, ou seja:

Adicione a seguinte linha à lista no topo:

O conteúdo do arquivo ficará algo parecido com isto:

Salve as alterações no arquivo e então execute os seguintes comandos:


Agora você está pronto para instalar a utilidade de backup. Para isso, use o seguinte comando como root ou sudo:

para MySQL versão 5.xx:

para versões do MySQL 8.xx menores ou iguais a 8.0.29:

Isto conclui o procedimento de instalação da utilidade Percona XtraBackup.

Criação do backup

Agora você irá criar um backup completo do banco de dados usando o Percona XtraBackup.

  • o comando de backup é executado no mesmo servidor onde o banco de dados copiado está armazenado

  • no exemplo abaixo o volume adicional de backup montado em /mnt/backups pasta

  • um usuário pré-criado bkpuser com uma senha s3cret é usado para conectar ao banco de dados

Após concluir o backup, você precisa preparar o banco de dados copiado para uso. Sem esta operação, o banco de dados ficará inoperante.

Agora você tem uma cópia do banco de dados que está atualizada no momento de sua criação, criada sem parar o servidor e sem remover a carga de trabalho dele.

Esta cópia de backup pode ser usada para restaurar seu banco de dados em caso de emergência.

Atualizado

Isto foi útil?