Una interesante forma de copiar grandes cantidades de datos, que había visto hace unos días en MySQL Perfomance Blog, aunque tenía un par de fallos para mi gusto.

  • No trabajaba sobre los dumps de la base de datos, si no sobre los archivos en /var/lib
  • No quedaba claro si agrupando todo con Tar podiamos tener errores en la transferencia

La forma presentada funcionaba de la siguiente manera:

Desde donde vamos a recibir los archivos (es decir, nuestro destino), dejamos abierto un puerto con netcat para iniciar la transferencia:

nc -l  4000 | tar xvf -

Y desde donde vamos a enviar los archivos (nuestro origen), hacemos lo siguiente

cd /var/lib/mysql
tar -cf - . | nc ip_destino 4000

Luego de leer las opiniones en el comentario del post, se me ocurrió que una forma más eficiente de realizar esta tarea podía ser la siguiente:

Desde el servidor destino:

nc -l -p 4000 | mysql -uroot -pPASSWORD bd_destino

Desde el origen:

mysqldump -uroot -pPASSWORD bd_origen | nc ip_destino 4000

Las utilidades:

  • Copiar rápidamente bases de datos completas entre servidores
  • Configurar más rapido la replicación :)
  • Automatizar la tarea y realizar backup’s