Backup selectivo de tablas Mysql

Un comando muy práctico para hacer backups de una base de datos MySQL es mysqldump.

mysqldump -h SERVIDOR -u USUARIO -pPASSWORD base_de_datos > backup.sql

Eso hace un backup completo de la base base_de_datos (incluyendo la creación de todas las tablas.

Para restaurar ese backup se hace directamente inyectando el sql al interprete de mysql.

mysql -h SERVIDOR -u USUARIO -pPASSWORD base_de_datos

Respaldar sólo algunas tablas de la base

A menudo tenemos multiples sistemas instalados sobre la misma base de datos, Si sólo queremos respaldar algunas tablas bastaría enumerar las tablas luego del nombre de la base de datos

mysqldump -h SERVIDOR -u USUARIO -pPASSWORD base_de_datos  tabla1 tabla2 > backup.sql

Pero si estas tablas son muchas, es engorroso definirlas una por una. Por suerte, en general, un prefijo asocia todas las tablas de un sistema.

En ese caso, se puede usar el siguiente compando que respalda todas las tablas con un prefijo, En este ejemplo, las que comienzan con "spip_":

mysql -h SERVIDOR -u USUARIO -pPASSWORD base_de_datos  -e 'show tables like "spip_%"' | grep -v Tables_in | xargs mysqldump -h SERVIDOR -u USUARIO -pPASSWORD base_de_datos > backup.sql

El código de este artículo está disponible en github. ¿Encontraste un error? Por favor, enviame un pull request.

Comentarios

Comments powered by Disqus