O mysqldump é o programa de backup preferido de DBAs e usuários do MySQL. Seja por ser gratuito, seja pela facilidade de uso. E ainda, pelo fato de ser distribuído com todos os pacotes de instalação do MySQL (desde sempre!).

Embora, nem de longe, seja meu programa nem método preferido para realizar cópias de segurança (back ups). Tenho que concordar que, para pequenos bancos de dados (até 30~50 GB) até que ele me surpreende.

E claro que nem toda surpresa é, necessariamente, boa. Às vezes retornar 50GB de backup, não acaba bem.

Agora, convido você a imaginar um cenário. Você tem sua backup, rigorosamente, em dia. O arquivo “txt” que contém sua backup contém 50GB de… comandos SQL válidos, INSERTS em sua maioria. Eis que, a tabela de clientes é danificada, irreparavelmente! E você me diz: “não tem problema, eu tenho backup!”.

Ter backup resolve parte do problema. Note que você tem 50GB de backup, e, que contém todas as tabelas do seu banco de dados. E, para voltar esta backup você levará de 3 a 5 horas, dependendo de uma série de fatores.

Pergunta-se: É racional retornar todas as tabelas, de todos os bancos de dados contidos em sua backup ao invés de somente aquela danificada? A resposta é não!

Existem várias maneiras de conseguir resolver esta questão. Uma delas é usar o alejuice. O alejuice é um simples programa escrito em C que extrai do seu arquivo de backup, gerando pelo mysqldump, somente, a tabela que voce necessita reparar e/ou restaurar.

Seu uso é, bastante, simples: alejuice <nome da tabela a ser extraída> <arquivo de backup> <arquivo de saída>

Abaixo, seguem os binários disponíveis para download:

alejuice - linux genérico x64 (1600)
alejuice - mac os x64 (600)

Sinta-se a vontade para apresentar idéias, e, também para comunicar eventuais erros.