Respaldar Bases de Datos de MySQL
Respaldar, Respaldar y Respaldar. La regla #1 en cuanto a Administración de Sistemas se refiere. Una de las cosas mas importantes que se tienen que respaldar son las bases de datos. Todo sistema moderadamente grande utiliza una base de datos para almacenar la información; las bases de datos te permiten manejar la información de una forma mas fácil, eficiente, rápida y segura.
MySQL es una de las bases de datos mas utilizadas, por lo menos en el entorno de las aplicaciones web. Utilizaremos un pequeño script de PHP para respaldar las bases de datos y por medio de un cronjob haremos que se ejecute periodicamente.
Requerimientos:
- PHP
- MySQL
- Una cuenta Shell, con permisos para usar crontab
Primero, es necesario hacer una cuenta que pueda crear respaldos:
-
CREATE USER 'backup'@ 'localhost' IDENTIFIED BY '*******';
-
-
GRANT SELECT ,
-
SHOW DATABASES ,
-
CREATE TEMPORARY TABLES ,
-
LOCK TABLES ON * . * TO 'backup'@ 'localhost' IDENTIFIED BY '*********' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Recuerda cambiar ********** por el password de la cuenta y no lo olvides, lo utilizaremos mas adelante.
Despues es necesario crear el script, tengo dos versiones la primera respalda todas las bases de datos mientras que la otra solo respalda las bases de datos especificadas.
Necesitamos crear un directorio donde guardar los respaldos. El default de los scripts es /backups/mysql, asi que seria cuestion de hacer:
-
sudo mkdir /backups
-
sudo mkdir /backups/mysql
o
-
sudo mkdir -p /backups/mysql
Opcionalmente puedes modificar la variable BD_BACKUPS_DIR del script y apuntarla a otro directorio. Una vez creado el directorio para los respaldos, es necesario abrir el script y modificar los siguientes datos para que reflejen tu entorno:
Además si estas utilizando el script #2 es necesario especificar las bases de datos que deseas respaldar:
Cambia db1, db2 y db3 por las bases de datos que quieras respaldar.
Por último hay que crear el cronjob que ejecutará hará los respaldos periodicamente:
-
chmod u+x /home/eromero/admin/mysql_backup.php
-
crontab -e
Y agrega una linea como la siguiente:
-
30 04 * * * /home/eromero/admin/mysql_backup.php>> /home/eromero/admin/mysql_backup.log 2>&1
Cambia /home/eromero/admin/ por el path en donde guardaste el script. La linea significa:
a las 04:30 horas de todos los dÃas ejecuta mysql_backup.php y anexa el resultado al archivo mysql_backup.log, incluye también los errores.
¡Y listo!
Hay muchas mejoras que se podrian hacer, por ejemplo que los archivos se respalden en otro servidor, o que se manden por correo a Gmail. Además este script hace backup de la base de datos completa, lo ideal serÃa solo incluir los datos que han cambiado.
Mas información:
About this entry
You’re currently reading “Respaldar Bases de Datos de MySQL,” an entry on Fox @ Linuxer
- Published:
- 01.24.07 / 4pm
- Category:
- Linux, Hosting, Desarrollo Web
No comments
Jump to comment form | comments rss [?] | trackback uri [?]