Data

10 ago, 2015

Mydumper & Myloader- substituindo o MySQLdump

Publicidade

Como assim substituindo? É uma nova versão do MySQLdump? Não, é uma ferramenta disponibilizada pela comunidade para realizar o dump do MySQL de forma mais otimizada. E por isso você não vai mais querer utilizar o convencional MySQLdump em seus backups lógicos. Ele vai parecer tão defasado que você só vai utilizá-lo para backups ou export muito simples e com pequeno volume de dados.

O Mydumper é uma ferramenta de dump otimizada que possibilita gerar o dump de um banco de dados até seis vezes mais rápido que o MySQLdump convencional. Faz o dump de forma mais organizada e paralela.

Guia de instalação

É necessário instalar algumas dependências, já que o Mydumper será compilado localmente. O guia a seguir já possui as dicas de instalação de dependências e compilação. O processo abaixo foi realizado no Oracle Linux 6.5 64bits, o que significa ser compatível também com Redhat, Fedora e CentOs, mas para distribuições derivadas do Debian também é bem fácil através do APT e o guia oficial também inclui as dicas para tais distribuições.

Dica: Fique atento a instalação do pacote “mysql-devel” se o MySQL tiver sido instalado manualmente. Sugiro que baixe o pacote “mysql-devel” correspondente a sua versão e instale manualmente, excluindo da listagem através de ferramenta gerenciadora de pacotes.

Instalando

yum install glib2-devel mysql-devel zlib-devel pcre-devel cmake
cd /opt
wget https://launchpad.net/mydumper/0.6/0.6.2/+download/mydumper-0.6.2.tar.gz
tar -xvf mydumper-0.6.2.tar.gz
cd mydumper-0.6.2
cmake .
make

Durante a compilação serão obtidos os seguintes resultados:

cmake-1024x722

Dica: Baixe, descompacte e instale em uma pasta de boa referência “/opt” ou “/usr/local”. Instale e adicione os binários no “PATH” para facilitar o uso em suas rotinas.

E serão gerados dois binários “mydumper” e “myloader”. Para testar, basta executar:

<span class="crayon-sy">.</span><span class="crayon-o">/</span><span class="crayon-v">mydumper</span> <span class="crayon-o">--</span><span class="crayon-v">help</span>

mydumper_help-1024x495

Executando seu primeiro backup:

./mydumper -t 8 -B employees -u backup -p backup

Com o comando acima, é executado um backup do database “employees” utilizando 8 THREADS. Um dos diferenciais é a geração de uma pasta com a data do backup. Dentro da pasta de backup é gerado um arquivo SQL para cada objeto e um arquivo de METADATA. Veja:

employees

Como visto acima, são gerados arquivos independentes para cada tabela – essa é a sacada das “THREADS” e o grande responsável por otimizar a performance se comparado o convencional MySQLDUMP, pois ele não perde tempo em uma única tabela grande. Caso seja necessário exportar uma tabela muito grande, as outras “THREADS” estarão ganhando tempo exportando outras tabelas menores e quando a maior tabela tiver sido completada, o DUMP será finalizado.

Em breve farei um SCRIPT de backup similar aos já postados aqui do Xtrabackup e do convencional MySQLdump, com rotinas de controle de retenção e monitoramento dos backups.

Dúvidas? Comente!