viernes, 4 de julio de 2014

Importar y exportar backups de Bases de Datos MySQL (Local y remoto)

Una de las tareas que se debe realizar muy a menudo cuando se trabaja en múltiples proyectos a la vez, es la de exportar backups de bases de datos de los ambientes de producción y luego importarlos en el ambiente de desarrollo local, para poder hacer los cambios requeridos por el cliente.

Generalmente el acceso disponible a los servidores es a través de SSH, por tal razón es necesario conocer los comandos usando la terminal para importar/exportar backups de las bases de datos.

Los comandos que utilizo muy a menudo para importar/exportar los backups son los que se detallan a continuación, cabe mencionar que en cada uno de ellos utilizo gzip para comprimir/descomprimir los archivos generados, pero se podría utilizar otros.

Exportar backup de servidor local


mysqldump -u {usuario_bd} -p {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Exportar backup de un servidor remoto a nuestra local


mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Importar Backup


gzip -dc {nombre_backup}.sql.gz | mysql -u {usuario_bd} -p {nombre_base_datos}


NOTA: Para exportar base de datos de gran tamaño he usado los parámetros --quick y --compress, los cuales han permitido disminuir los tiempos de descargas.

mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} --quick --compress {nombre_base_datos} > {nombre_backup}.sql

Descripciones:

{usuario_bd}: Un usuario existente en el servidor de Base de datos.

{clave_usuario}: Clave del usuario existente en la BD.

{nombre_backup}: Nombre que se le quiere dar al backup comprimido.

{ip_nombre_servidor}: Dirección IP o nombre del servidor remoto.

{nombre_base_datos}: Nombre de la base de datos de la cual nos interesar sacar el backup.