[Artículo] Backup de bases de datos MySQL remotamente

Buenas.

Hace poco me puse con un nuevo proyecto el cual la BBDD iba a ser algo importante sí o sí, ya que no se trata de un Wordpress ni nada por el estilo.
Me encontré con el problema de que el hosting donde contraté no tengo acceso a según que servicios ni posibilidad de automatizar tareas.

Así que investigando me solucioné el problema y quería compartirlo con el resto por si le pudiese ser útil en algún futuro.

(artículo original: http://www.alexmilla.net/backup-de-bases-de-datos-mysql-remotamente )

Estuve buscando formas de realizar backups automatizados de las bases de datos desde el propio servidor.
Encontré una herramienta basada en PHP que funciona genial y encima es gratuita.

http://www.phpmybackuppro.net/

Es una aplicación muy sencilla escrita en PHP y que se ha de instalar en un servidor web con PHP acceso a MySQL evidentemente. El hosting donde tengo la página web y dispone de todos estos requisitos, pero solo tiene un inconveniente. No tengo acceso al CRON para programar las tareas de copia.

Para ello me monté una máquina virtual con un Ubuntu Server en modo consola en mi ESXi. Instalé los servicios básicos LAMP y descomprimí en un directorio del servidor web "phpMyBackuppro". También decidí instalar suPHP para poder ejecutar los scripts PHP desde consola.

(Nota: Si en el caso de que en el ISP no tengas acceso a root y te den acceso a las BBDD individualmente como a mí, tendrás que crear una instalación por BBDD que tengas.)

Una vez descomprimido el archivo que hemos descargado iniciamos el programa a través de nuestro navegador.
La primera vez hasta que no introduzcamos los datos no nos pedirá usuario, pero una vez introducidos nos saldrá siempre una pantalla solicitandonos los datos. Antes de nada habría que dar acceso 777 al archivo global_conf.php y el directorio export.

Imagen

La interfaz es muy sencilla.

Imagen

En la parte superior se puede observar unas pestañas en las cuales podemos ver las diferentes opciones y datos a introducir con los datos de nuestro ISP como el nombre del host, el nombre de la base de datos o incluso si queremos transferir la bbdd una vez descargada a un ftp privado que tengamos o que nos la envíe por correo si esta ocupa poco. Esta última opción no la recomiendo si la bbdd puede crecer mucho, ya que los proveedores de correo normalmente no están preparados para recibir correos muy grandes.

Imagen

También tenemos la opción de decirle cuantas copias queremos que nos conserve. Yo por ser previsor le voy a decir que me guarde las copias de 30 días (opción "delete local backups after x days:").

Imagen

En la pestaña backup podemos realizar un backup de forma manual. Podemos guardar la bbdd tanto en formato original, ZIP o GZ (si tenemos habilitado Gzip en nuestro servidor). Si nuestras bbdd crecen mucho recomiendo comprimirlas

Imagen

En la pestaña import podremos subir automáticamente a nuestro hosting una bbdd anterior. Si son muy grandes los ISP's tienen por defecto limitado el tamaño, con lo cual recomiendo usar la opción "fragmented".

Imagen

Después de esta breve introducción al entorno de phpMyBackupPro y ver lo sencillo que resulta vamos a ver la parte de como automatizar las copias de seguridad.

Si en nuestro servidor contratado tuviesemos acceso a CRON y SSH sería mucho más sencillo, con ir a la pestaña Schedule Backup sería tan facil como indicar los periodios de ejecución, seleccionar las BBDD y donde está nuestra carpeta export (o donde queremos que se guarden los archivos).

Imagen

En caso de que no tengamos acceso. Utilizaremos nuestra máquina virtual para ejecutar la anterior pestaña Backup pero en modo consola.

Para ello nos crearemos un pequeño archivo .sh con las diferentes bbdd que queramos guardar. Recordad que si tenemos acceso a root solo bastaría con una linea, pero al tener acceso individual hará falta una linea por bbdd.

En la imagen podemos ver diferentes números al final. Segun la documentación son las opciones necesarias para que se cree el backup. El último número concretamente es para que se comprima. (La compresión por eso no la hace al máximo, no he sabido porque).

Imagen

Le damos los permisos correspondientes al archivo .sh y ejecutamos crontab -e con el usuario que ejecutaremos el script.

En mi caso lo he programado para que se realice cada día a las 7 de la mañana y a las 7 de la tarde.

Imagen

Si todo ha funcionado bien, deberiamos empezar a ver como se van realizando los backups.

Imagen
0 respuestas