Como restaurar uma tabela MySQL

Ola pessoal,

Em época de férias, muito esforço nos estudos para tirar a 1z0-883, irei focar alguns posts futuramente sobre o exame.

“Eu amo backups e snapshot’s” diria um companheiro de trabalho, porém é comum e rotineiro o DBA trabalhar com estratégias de backup e restore.

Neste tópico, uma rápida pincelada de como efetuar o restore de uma única tabela no MySQL.

Tudo depende da origem do seu dump e de como ele foi gerado. Supondo que você tem o dump completo da base, acredito que a melhor forma é você restaura-lo em uma base temporária e efetuar o backup apenas da tabela que necessita.

Para restaura-lo em uma base através da linha de comando:

Após o termino do restore, vamos efetuar o dump desta unica tabela:

Sempre recomendo que seja visualizado a ultima linha do dump, para confirmar que o mesmo foi gerado com sucesso, exemplo:

— Dump completed on 2015-04-17 1:21:20

Com isso, basta efetuar o restore deste único arquivo:

Se por n motivos for necessário efetuar o backup e restaurar tabela por tabela, dependendo da quantidade podemos bolar uma rotina de repetição no terminal linux.

Segue um exemplo simples, que pode ser ajustado ou desenvolvido de outra forma. Primeiro, crie um arquivo .txt com o nome de cada tabela da base.

Você pode obter todas elas na information_schema, através da query:

Navegue até o diretório em que foi salvo o arquivo com o nome de cada tabela. Efetue o dump:

Onde:

A variável i recebe o nome de cada tabela com o output do cat, e joga o resultado após o nome da base na linha de comando, logo o dump é feito tabela por tabela.

Se quiser acompanhar o processo, podemos acrescentar um echo:

Beleza, com o dump de cada tabela, basta redefinirmos a estrutura do for para o restore:

Porque é interessante incluir o echo e realizar o restore desta forma? Caso você não consiga completar o restore em algum momento, desta forma você consegue identificar o causador do problema e se o erro não derrubar o mysql, o restore prosseguirá nas demais tabelas até a finalização.

Créditos:

Edi Carlos que mantém o Blog ao Cubo, que me proporcionou o conhecimento e me ajudou a bolar este script, e ao José Arthur que me ajudou também no processo e que também ama Backup’s e Snapshot’s 😛

É isso ai pessoal.

Dúvidas, criticas ou sugestões? Fiquem a vontade, todo retorno é construtivo 🙂

Jose Wilson

2 Replies to “Como restaurar uma tabela MySQL”

Deixe uma resposta