systemadmin.es > DBA > Backup MySQL con mysqldump por tabla con mk-find del Maatkit

Backup MySQL con mysqldump por tabla con mk-find del Maatkit

Los mayores inconvenientes de los backups con mysqldump es al intentar recuperar datos de ellos. Resulta especialmente molesto recuperar de una base de datos de varios Gigabytes una tabla de unos pocos registros. Combinando mysqldump con mk-find del Maatkit podemos realizar backups por tabla en lugar de por base de datos.

Para el que no tenga instalado en su servidor de bases de datos MySQL el Maatkit lo puede hacer muy fácilmente: Nos situamos en el directorio en el que se quiera instalar, por ejemplo, /opt/scripts/maatkit y hacemos un wget de las utilidades de la lista que nos interesen y les damos permisos de ejecución:

# wget http://www.maatkit.org/get/mk-find
--22:46:33--  http://www.maatkit.org/get/mk-find
Resolving www.maatkit.org... 64.130.10.15
Connecting to www.maatkit.org|64.130.10.15|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-perl]
Saving to: `mk-find'

    [  <=>                                                                                       ] 59,792       171K/s   in 0.3s   

22:46:34 (171 KB/s) - `mk-find' saved [59792]

# chmod +x mk-find

A continuación mediante el siguiente script recorremos las bases de datos que nos interesen buscando todas sus tablas con el mk-find y a continuación realizando un backup con mysqldump en un fichero independiente:

#!/bin/bash

DBS="wordpress mediawiki mysql"

for db in $DBS;
do
        for tabla in $(mk-find -u backup -p 11um7LCp $db);
        do
                tabla=$(echo $tabla | sed 's/^.'$db'.\.//g')
                taula=$(echo $taula | sed 's/^.//g')
                taula=$(echo $taula | sed 's/.$//g')
                /usr/bin/mysqldump -ubackup -pelcaro --opt --host="127.0.0.1" --log-error=/tmp/logmysqldump.${db}.${tabla}.log --force $db $taula| gzip -c > /data/backup/mysql/backup_${db}_${tabla}_$(date +%Y%m%d).sql.gz
        done
done

Pudiendo ser selectivos por tabla en las restauraciones nos va a ahorrar muchos dolores de cabeza, y lo que es mas importante: mucho downtime en los servicios.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>