miércoles, 9 de enero de 2013

Como realizar backup/export de todas las bases de datos MySQL en varios archivos



Este es un script que me ha ido muy bien para extraer todas las bases de datos de MySQL para poder hacer un backup. Con un "# mysqldump --all-databases" normal toda las BBDD quedan almacenada en un único fichero y es algo más engorroso a la hora de recuperar una sola base de datos.

El script lo ejecuto en una tarea PRE-BACKUP:

#!/bin/bash
# sonia 16-nov-05
# backup each mysql db into a different file, rather than one big file
# as with --all-databases - will make restores easier

USER="root"
PASSWORD="secret"
OUTPUTDIR="/var/backup_mysql"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"

# clean up any old backups - save space
rm "$OUTPUTDIR/*bak" > /dev/null 2>&1

# get a list of databases
databases=`$MYSQL --user=$USER --password=$PASSWORD \
 -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

# dump each database in turn
for db in $databases; do
    echo $db
    $MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \
    --databases $db > "$OUTPUTDIR/$db.bak"
done

El script lo he sacado de aquí:
http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/

No hay comentarios:

Publicar un comentario