Copiando bases ou tabelas MySQL

Tags: — June 7, 2008 @ 7:58 pm

Uma característica que pode fazer falta no MySQL é a possibilidade de renomear bancos de dados, assim, quando esta ação é necessário, o único modo é copiando toda uma base para uma nova e removendo a antiga.

Para facilitar este processo, podemos utilizar o mysqlhotcopy, um script em perl capaz de copiar rapidamente bases de dados completa ou parcialmente, desde que todas as tabelas a serem copiadas utilizem as engines MyIsam ou Isam.

Desde que migrei meu blog para o novo servidor pretendia renomear a base de dados utilizada. Embora algumas versões do MySQL 5.1 incluam um comando para renomear bases, este foi removido recentemente e não é recomendado que seja utilizado nas versões que o possuem. Assim, eu estava prestes a utilizar o mysqldump para copiar inteiramente a base, quando me deparei com o mysqlhotcopy.

De fato, a própria documentação do mysqldump recomenda o uso do mysqlhotcopy para backups, desde que utilizado para tabelas MyIsam ou Isam, devido ao ganho de velocidade. Assim, para copiar uma base completa, basta utilizar:

$ mysqlhotcopy -u username -p password bd_origem bd_destino

Também é possível utilizar regex para selecionar as bases a serem copiadas, ou as tabelas dentro de uma base.

Como ponto negativo, o mysqlhotcopy só pode copiar bases de dados locais, e é necessário especificar a senha (se houver senha) do usuário a fazer a copia na linha de comando. Mas ainda assim é uma ótima opção para copiar bases completas, uma vez que tabelas MyIsam são hoje as mais utilizadas em bases de dados MySQL.

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Related posts

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment