Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2005, 10:27
Inside PHP
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
¿Hacer un BackUp? ... ¡Pero si es muy fácil!

¿Hacer un BackUp? ... ¡Pero si es muy fácil!

El backup, dump o copia de respaldo de una base de datos puede hacerse a través de phpMyAdmin, del Admin del foro, de mySQL, etc... pero sea cual fuere el medio que se utilice, hay que configurar parámetros.
Para facilitar la cosa y evitar -en una tarea repetitiva como es un backup- tener que configurar parámetros cada vez, he creado este par de scripts complementarios que son el colmo de la simplificación: Dump y Download la Base de Datos - Restore la Base de Datos que, con un simple click son capaces de hacer lo que su propio nombre indica.


Su preparación es sencilla:

1.- Configurar en ambos scripts las cuatro variables:

$db_server = "la dirección de base de datos: mysql.webcindario.com o localhost o...";
$db_name = "el nombre de la base de datos";
$db_username = "el usuario";
$db_password = "el password";

2.- Crear en el server una carpeta con privilegios de escritura.
3.- Subir a esa carpeta ambos scripts.


Su funcionamiento es simple:

1.- Dump y Download la Base de Datos

- Cada vez que se lanza el script, se crea el Dump de la Base de Datos completa.
- El Dump se crea comprimido si el servidor tiene capacidad para ello.
- El Dump se crea con el nombre de la base de datos y extensión '.gz' o '.sql' según tenga el server o no, capacidad de compresión, respectivamente.
- El Dump creado se salva en la misma carpeta en que está el script.
- El Dump puede descargarse del server al ordenador desde la misma ventana del navegador.
- Cuando se lanza el script, no se obtiene el resultado en la ventana del navegador hasta que el dump finaliza. Eso significa que con una gran base de datos sin comprimir de 1000 Mb (1 Gb), por ejemplo, el resultado tardará en aparecer tres minutos aprox., dependiendo de la velocidad del server.
- Cuando se lanza el script, no cerrar ni hacer nada con esa ventana del navegador, hasta que el script concluya y muestre el resultado.

2.- Restore la Base de Datos

- Cada vez que se lanza el script, se borra la estructura de la base de datos y se restituye el contenido del dump que, con nombre igual al de la base de datos y extensión '.gz' o '.sql' según tenga el server o no, capacidad de compresión, respectivamente, está en la misma carpeta que el script.
- Cuando se lanza el script, no se obtiene el resultado en la ventana del navegador hasta que el restore finaliza.
- Cuando se lanza el script, no cerrar ni hacer nada con esa ventana del navegador, hasta que el script concluya y muestre el resultado.


· Los scripts procesan query a query, lo que significa que da igual el tamaño de la base de datos a dumpear o restorear... que puede ser de gigas.
· Naturalmente, el Dump resultante de "dump_db.php", esté o no comprimido, es estándar SQL susceptible de ser procesado por phpMyAdmin, mySQL, el Admin del foro o portal, etc.
· De igual forma, "restore_db.php" es capaz de restorear cualquier dump estándar SQL.
· Los scripts dumpean o restorean la base de datos sin importar si ésta pertenece a un foro y qué tipo de foro (phpBB, vBulletin, etc), a un portal y qué tipo de portal, etc... en síntesis, los scripts son universales.
· Se podría hacer más bonito y más complicado pero no merece la pena, de lo que se trata es de hacer el backup o restore de una base de datos en un simple click, no de hacer monadas.
· Distribuyo los scripts bajo los términos de la Licencia GNU de Documentación Libre (GFDL, GNU Free Documentation License).


Puede verse Dump y Download la Base de Datos en acción haciendo el backup de un foro: http://insidephp.webcindario.com/BackUp_db/dump_db.php
(Por zarones obvias, los passwords de los usuarios son ofuscados en el download)
(Por zarones obvias, los mensajes privados son removidos del download)

Naturalmente, si se hace pública la dirección de los scripts se está haciendo pública la base de datos: utilizar nombres imaginativos para la carpeta que los contiene y para ellos mismos, no es mala idea.

- Con este par de scripts es posible migrar un foro de un server a otro, en cuestión de minutos: Dump, Download, y Restore en el destino... haciendo lo mismo con el contenido del FTP
- Este par de scripts posibilita upgradear o updatear un foro de forma segura: Dump, salvar el FTP, aplicar el update... si no sale bién o no gusta el resultado, se vuelve al estado anterior con restore el FTP y Restore... y aquí no ha pasado nada.
- Con este par de scrits hacer el clon de un foro en el ordenador de casa para probar allí cosas antes de aplicarlas, es trivial: Dump, Download, meterlo en la carpeta del XP y Restore... sencillo como la vida misma.


Espero que les sea útil,
Un saludo.
Inside PHP


scripts y demás en: http://insidephp.webcindario.com

Dump y Download la Base de Datos tiene este aspecto:

...


Restore la Base de Datos tiene este aspecto:

...


Download los scripts: dump_y_restore_db.zip

(Agradecería al Admin que eliminara el hilo que, con el mismo título está en "Aplicaciones prefabricadas...". Gracias)