systemadmin.es » Backup » Recuperar datos de un MySQL con snapshots

Recuperar datos de un MySQL con snapshots

Hemos visto como realizar snapshots periódicos de MySQL para tener cópias de seguridad cada pocas horas. Vamos a ver como recuperar datos desde los snapshots.

Podemos montar el snapshot normalmente:

mount /dev/mapper/local2-snap.mysql2.08 /mnt/tmp

A continuación podemos levantar un MySQL en otro puerto y otro socket:

/usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/mnt/tmp/ --user=mysql --pid-file=/var/mysql/mysqld2.pid --skip-external-locking --port=3307 --socket=/tmp/mysql2.sock --log-output=FILE --log-error=/var/log/mysql/mysqld.log.2 --slow_query_log_file=/var/log/mysql/mysqld-slow.log.2

Mediante este comando tendríamos lo siguiente:

  • socket: /tmp/mysql2.sock
  • puerto: 3307
  • log general: /var/log/mysql/mysqld.log.2

A continuación podriamos mirar mediante comandos SQL en dicho puerto o socket como si de la base de datos en el instante del snapshot paralizada en el tiempo se tratase. Incluso podemos realizar dumps:

mysqldump -S /tmp/mysql2.sock -u root -p$(cat /var/mysql/.mysql.root.pass) mediawiki wkpage wkrevision wktext > /var/backup/wikidb.snap.08.sql

Para luego importarlas al MySQL principal con otro nombre:

cat /var/backup/wikidb.recuperat.snap.08.sql | sed 's/wkpage/wkpage_old/g' | sed 's/wktext/wktext_old/g' |sed 's/wkrevision/wkrevision_old/g' | mysql mediawiki

Relacionados

Imprimir Imprimir

Deja un comentario:

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