Menu fechado

Backup compactado em MySQL – mysqldump – gzip – bzip2

Hoje vamos falar de um assunto muito importante para administradores de banco de dados, o BACKUP.
Existem várias estratégias de backup, snapshot, dump, dump + binlog, tudo depende da sua necessidade e do tamanho do seu banco de dados. Vou explanar um pouco sobre a ferramenta que o próprio MySQL nos provê, que é o mysqldump, eu indico esta ferramenta para bancos de dados que possuam até 15gb/20gb, mais que isso, a probabilidade de você ter problemas para restaurar um backup e a grande demora, o tornam inviável.
Como o mysqldump funciona? Ele nada mais faz do criar comandos sql para nossa estrutura e dados e os jogar no arquivo indicado.
Primeiramente, vou explicar algumas das mais importantes opções do mysqldump depois, para quem tem o MySQL instalado em um servidor LINUX, vou ensinar como compactar o dump em tempo real.

    Fazendo backup de todos os bancos de dados:

mysqldump -u usuario -p --all-databases > dump.sql

    Fazendo backup de somente um banco de dados:

mysqldump -u usuario -p --databases db1 > dump.sql

    Fazendo backup de varios banco de dados:

mysqldump -u usuario -p --databases db1 db2 db... > dump.sql

    Fazendo backup com triggers

mysqldump -u usuario -p --triggers --all-databases > dump.sql

    Fazendo backup com procedures e functions

mysqldump -u usuario -p --routines --all-databases > dump.sql

    Agora vamos compactar o nosso dump em tempo real com o gzip:

mysqldump -u usuario -p --all-databases | gzip > dump.sql.gz

    Podemos ainda atingir uma maior taxa de compressão utilizando o bzip2:

mysqldump -u usuario -p --all-databases | bzip2 > dump.sql.bz2

Fazendo um comparativo entre o dump com as 3 opções de compressão (nenhuma, gzip e bzip2) tivemos o seguinte resultado:

    Dump normal – 947k
    Dump com gzip – 297k
    Dump com bzip2 – 205k

E como eu faço para restaurar o dump?

    Normal:

mysql -u usuario -p < dump.sql

    gzip:

gunzip < dump.sql.gz | mysql -u usuario -p

    bzip2:

bunzip2 < dump.sql.bz2 | mysql -u usuario -p

Mais detalhes sobre mysqldump podem ser encontrados no manual online do MySQL, até a próxima.

Gostou ? Ajude e Compartilhe!