MySQL - Escrito por Juan Gabriel Covas el Martes, 6 de Octubre de 2009 a las 15:27 pm - Sin comentarios
MySQL: Cómo hacer una copia de seguridad de todas las bases de datos
Con este script en bash podremos crear un backup fácil y genérico de todas las bases de datos de un servidor, o de aquellas que le indiquemos. Usando la herramienta mysqldump de MySQL nos aseguramos un volcado de las ‘databases’ que podemos recuperar más adelante a lo bruto usando el comando ’source’ de mysqladmin, etc. y también garantizamos que las copias no tengan problemas con cachés o inserciones que estén realizándose durante el volcado.
Además, cada base de datos se comprime con gzip, quedando una serie de archivos con extensión “gz” que después se empaqueta en un solo archivo TAR que incluye la fecha en que se ha realizado la copia de seguridad. Llevarte esos archivos TAR o los “gzip” a un lugar seguro, ya sea de forma automatizada o no, es otra historia.
[SCRIPT] #!/bin/sh # Crea un snapshot de todas las bases de datos en archivos *.sql.gz # Las empaqueta en un archivo TAR que incluye la fecha echo --------------------------------- echo mysqlbackup v2 by Juanga 2009
## password mysql (asume usuario root) MY_MYSQLPWORD=xxxxxx
## usuario:grupo al que forzar todos los ## archivos de MY_PATH_TAR al final del proceso MY_USER_GROUP=root:root
## Elegir (descomentar) un metodo para ## determinar las bases de datos a dumpear ## metodo 1) especificar las bases de datos ## que se quieren, separados por espacios ###### MY_BACKUP_DB="BASE1 BASE2 BASE3" ## metodo 2) TODAS las bases de datos ###### MY_BACKUP_DB=`find /var/lib/mysql/ -type d -printf "%f\n"`
## Directorio donde dejar el archivo TAR MY_PATH_TAR=/path/to/carpetadecopias
## Directorio donde dejar los *.sql.gz ## de las bases de datos MY_PATH_GZ=/path/to/gzfiles
## Un prefijo del nombre del archivo TAR MY_FILENAME=backupMySQL
## Nombre final del Archivo TAR a generar
MY_BACKUP_FILE=${MY_PATH_TAR}/${MY_FILENAME}\
$(date +"%d-%b-%Y")
## De donde cóger los archivos sql.gz
MY_BACKUP_TAR_PATH=${MY_PATH_GZ}/*.sql.gz
### LISTO
echo
echo Removing old \
${MY_FILENAME}* files...
rm -f ${MY_PATH_TAR}/${MY_FILENAME}*
echo
echo Removing old *.sql.gz files...
rm -rf ${MY_PATH_GZ}/*
echo echo MYSQLDUMPing databases...
for FF in $MY_BACKUP_DB
do
echo gzipping database $FF to \
${MY_PATH_GZ}/$FF.sql.gz...
mysqldump --opt -u root --password=${MY_MYSQLPWORD} \
--databases "$FF" | gzip -9 -f --rsyncable \
> ${MY_PATH_GZ}/$FF.sql.gz
done
echo
echo Packaging *.sql.gz into \
${MY_BACKUP_FILE}.tar...
# empaquetar backup
tar -cf ${MY_BACKUP_FILE}.tar \
${MY_BACKUP_TAR_PATH}
echo echo Chowning public files to $MY_USER_GROUP
chown -R ${MY_USER_GROUP} ${MY_PATH_TAR}
echo
echo DB dump finished!
echo
echo Listing ${MY_PATH_GZ}
echo
ls -la ${MY_PATH_GZ}
echo
echo Listing ${MY_PATH_TAR}
echo
ls -la ${MY_PATH_TAR}
echo
echo EOF
[/SCRIPT]
Hago notar que el script no va a funcionar si no se rellenan correctamente las variables necesarias, especialmente la elección del método para elegir las bases de datos. Echa un vistazo al código para saber qué poner en cada caso.
RECOMENDAMOS:
LO MAS RECIENTE
- Los juegos PIPO en inglés, en PipoGames.com
- MySQL: Cómo hacer una copia de seguridad de todas las bases de datos
- De cómo recuperé una cuenta de messenger después del robo de contraseña
- Muzikomio: descargar la mejor música alternativa de sellos independientes
- Solución: messenger no recuerda la contraseña después de reiniciar (messenger, internet explorer, etc)
- Drivers para RAID ULI220 M1575 – M5288 (Nvidia)
- INND: Cómo montar tu propio servidor de news privado
- PopMonger: Cómo procesar automáticamente los rebotes de correo o “message bounces”
- Vaya Fiasco de Fiasco Awards
- Primeros pasos con un servidor linux remoto… nos dan acceso, ¿y ahora qué?
- Securizando el entorno Linux del servidor
- excelente programa no saben lo que me han ayudado gracias...
- a mi me sale es error en un server x86_64 con centos y mysql 5.x
MEMORY USAGE...
- Excelente ayuda, ahora mi consulta seria como poder acceder desde CentOS a Wind...
- excelente, me partio un archivo de 4.8 gb con 14 millones de registros y en muy ...
- Acabo de probarlo con un archivo de 3 GB y lo particionó muy rápido.
Excelent...
- el archivo era de 1.4 gb y me generó archivos de 64000 lineas 4 mb sin problemas...
- @Luix: Sí, XCache es lo mismo que EAccelerator, una "caché de opcode para PHP", ...
- Hola un saludo cordial. Buena tu guia, tengo una pregunta, xcache me puede servi...
Software - 29 / Mar / 09 - Sin comentarios
PopMonger: Cómo procesar automáticamente los rebotes de correo o “message bounces”
MÁS EN Software
- Cómo crear imágenes GIF animados fácilmente con UnFREEz
- Gif Color Mapper: cambiar un color por otro a cientos de archivos
- PIPO: los juegos para niños de más éxito
- Thunderbird: 3 razones para usar este cliente de correo electrónico
- PaintShopPro 9: El photoshop para programadores
MySQL - 6 / Oct / 09 - Sin comentarios
MySQL: Cómo hacer una copia de seguridad de todas las bases de datos
MÁS EN Servidores
- INND: Cómo montar tu propio servidor de news privado
- Primeros pasos con un servidor linux remoto… nos dan acceso, ¿y ahora qué?
- Securizando el entorno Linux del servidor
- Optimizando MySQL: Tuning-Primer y el archivo de configuración my.cnf
- Afinando la conexión a Secure Shell (SSH)
MundoGeek - 5 / Oct / 09 - Sin comentarios
De cómo recuperé una cuenta de messenger después del robo de contraseña
MÁS EN MundoGeek
- Muzikomio: descargar la mejor música alternativa de sellos independientes
- Solución: messenger no recuerda la contraseña después de reiniciar (messenger, internet explorer, etc)
- Drivers para RAID ULI220 M1575 – M5288 (Nvidia)
- Vaya Fiasco de Fiasco Awards
- Iluminar filas de una tabla con CSS
Hacer un comentario
Debes iniciar sesión para hacer un comentario.