Restaurando MySQL com informações de progresso

Uma das formas mais comuns de realização de Backup de uma base de Dados MySQL é através do mydqldump, porém quando necessita restaurar uma base de dados você fica sem um status de quanto ja foi processado para saber a final quanto tempo levará o processo todo.

Este artigo entende que fizemos o backup com mysqldump e o arquivo está compactado com Zgip.

Sendo assim a forma mais comum de realizar um restore é com um dos comandos abaixo:

cat backup.sql.gz | grep gunzip | mysql -u usuario -p
ou
zcat backup.sql.gz | mysql -u usuario -p

Porém nestes casos não temos nenhum status de quanto ja foi restaurado, sendo assim podemos usar a ferramenta DD (ja abordada em outro post aqui) para realizar a leitura do arquivo, e assim utilizar um sinal do linux para saber o quanto o DD ja leu o arquivo. Confuso? Então vamos aos comandos que tudo ficará mais claro.

Comando de restauração:

dd if=backup.sql.gz | grep gunzip | mysql -u usuario -p

Até aqui nenhuma novidade, só substituímos o cat pelo DD, a novidade vem agora, podemos usar o sinal -USR1 no processo do DD que ele imprimirá em tela o quanto ja leu do arquivo backup.sql.gz.

Primeiramente vamos descobrir o Process ID (PID) do DD com o comando:

ps aux | grep -i "command\|dd if" | grep -v mysql | grep -v grep

O Resultado do comando será algo parecido com a imagem abaixo:
ps

Agora de posse do PID podemos executar o comando mágico que trará quanto o nosso DD ja leu do arquivo

kill -USR1 26711

Quando executado este comando, na janela em que está sendo executado o DD ele irá trazer um resultado semelhante a imagem abaixo:
kill

Agora para fechar com chave de outro vamos criar um comando que fica enviando este sinal a nosso processo de tempo em tempo.

 while :; do kill -USR1 26711; sleep 30; done
Helvio Junior

Helvio Junior

Gerente de Infraestrutura de TI e Telecomunicações em Fael, uma empresa do grupo Apollo Global
Especialista em redes e segurança de sistemas pela PUC-PR, consultor de redes e segurança da informação. CEO e CTO da SafeTrend, com um produto de single sign-on e gestão de identidades e acessos. Especialista em Segurança da Informação, Controle de Acesso, ambientes e ferramentas de segurança, telefonia VoIP com Asterisk, administração de redes em ambientes híbridos e realização de penetration test (pentest).
Helvio Junior
0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *