Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Backup MySQL vol. 1


Todo administrador de sistemas que utilice MySQL se verá forzado a dumpear la base de datos para llevarla a otro servidor con mas recursos o para hacer un backup de la misma, en este artículo explicaré el modo de dumpeo mas sencillo pero también el que mas downtime implica.

Este método es idóneo para servidores que pueden permitirse un downtime en algún momento del día, de este modo programarse el backup mediante CRON a una hora prudente y nadie se enterará de lo ocurrido.

 

A continuación como backupear y restaurar la base de datos.

  • Backup de todas las bases de datos:
mysqldump -A -uroot -p'XXXX' > DB.sql

mysql -uroot -p'XXXX' < DB.sql

 

  • Solo una base de datos:
mysqldump DB -uroot -p'XXXX' > DB.sql

mysql -uroot -p'XXXX' < DB.sql

 

  • Solo una tabla(se puede restaurar en otra base de datos si es necesario):
mysqldump -u root -p'XXXX' DB TABLA > TABLA.sql
mysql -u root -p'XXXX' DB < TABLA.sql

 

  • BackUp solo de la estructura:
mysqldump --no-data DB  -uroot -p'XXXX' > ESTRUC.sql
mysql -u root -p'XXXX' DB < ESTRUC.sql

 

NOTA: Si solo se quiere restaurar una tabla hay que hacer un workaround grepeando las sentencias de inserción que impliquen dicha tabla.

grep 'INSERT INTO `TABLA`' DB.sql > DB_REDUCED.sql
mysql DB -uroot -p'XXXX' < DB_REDUCED.sql

 

  • Si andamos cortos de espacio en el servidor MySQL podemos enviar el dump directamente por red:
mysqldump DB -u root -p'XXXX' | gzip -c | ssh [email protected] 'cat > ~/DB.sql.gz'

 

  • O incluso insertar directamente:
mysqldump DB -uroot -p'XXXX' | ssh [email protected] 'cat | mysql DB -uroot -p'XXXX''

 

  • Si queremos programar el trabajo digamos a las 12:00 de la noche:
crontab -e
00 00 * * * mysqldump -A -uroot -p'XXXX' > DB.sql
 

Autor: Kr0m -- 12/05/2014 11:05:27