Como DBA una de las tareas más comunes a la que nos enfrentamos son las tareas de backup y restore en diferentes tecnologías. Cada sistema tiene sus peculiaridades, y MySQL no es la excepción, especialmente cuando se trata de proteger y recuperar datos críticos.
En este post cubriremos varias formas de backear en MySQL, desde una base de datos completa hasta un conjunto de ellas pasando por backups de tablas y formas de compresión. ¿Listo? ¡Empezamos!
Backup lógico de una base de datos MySQL
La primera forma y más conocida de hacer backup es el uso de mysqldump, una herramienta que nos permite hacer backup lógico de nuestra DB.
En nuestro comando de ejemplo copiaremos el contenido de la «nombre_DB» a un fichero «backup.sql»
Ejemplo de mysqldump
mysqldump -u <usuario> -p <contraseña> <nombre_DB> > /path/al/directorio/backup.sql
¿Sencillo verdad? Pero recuerda que un backup lógico es más ligero y no trae los bloques de datos, sino que replica la estructura y esto nos da infinitas posibilidades.
Podemos recrear la infrastructura, asegurarnos de que se borre lo anterior antes de importar, incluir permisos, y mil opciones más. Tienes una guía completa de todas las opciones aquí.
Backup físico de una base de datos MySQL
Un backup físico toma los bloques de datos al completo y nos asegura mayor integridad de la información a costa de tener que parar la DB antes de tomarlo. Para parar y arrancar usaremos mysqladmin.
Podrías no pararla, pero entonces te cargarías la integridad. Imagina que nuestro backup está leyendo un bloque que unos segundos más tarde es modificado por una consulta al vuelo. No bueno.
Ejemplo con mysqladmin
-- Paso 1) Apagar la DB
mysqladmin -u <usuario> -p <contraseña> shutdown
-- Paso 2) Copiar el directorio de datos a otro directorio de backup
-- Paso 3) Arrancar la DB
cp -r /data/mysql/<nombreDB> /backup/<nombreDB>
mysqladmin -u <usuario> -p <contraseña> start
Solo para los nuevos en esto, no copies y pegues sin entender que se dan unas asunciones básicas:
- Tienes identificado el directorio de data de tu MySQL
- Tienes creado un directorio de backup donde poner los datos
- Hay espacio suficiente en tu directorio de backup
- Tienes permisos de administrador
Backup de varias bases de datos MySQL a la vez
Ahora que ya entiendes la diferencia entre backup físico y lógico y además conoces las diferentes herramientas para realizarlos podemos pasar a un ejemplo más práctico. Cómo hacer backup de varias dbs a la vez.
mysqldump -u <usuario> -p <contraseña> --databases <DB1> <DB2> <DB3> > /path/al/directorio/backup_multiple.sql
Con este comando cargaríamos las bases de datos DB1, DB2 y DB3 a un único fichero backup_multiple.sql
NOTA: No tiene sentido hacer backup de information_schema ni performance_schema, ya que son puramente metadata.
Backup de una tabla en MySQL
Hay muchos casos en que solo tenemos una tabla de un schema donde almacenamos toda la información y el resto de la DB está un poco de adorno. El último caso real que veremos hoy es el de hacer backup lógico de una tabla.
Ejemplo mysqldump de una tabla
mysqldump -u <usuario> -p <contraseña> <nombre_DB> <schema.tabla> > /path/al/directorio/backup_tabla.sql
Revisión final
Como hemos visto hay varias formas de sacar backups de tus bases de datos MySQL y tendrás que escoger cual es la que mejor se adapta a tus necesidades.
Recuerda otros aspectos importantes que no hemos tratado. Como la compresión de los backups cuando tienes mucho volumen o las opciones más útiles de mysqldump.
Si quieres que te envíe los scripts que utilizo para automatizar las tareas de backup rellena este formulario con el asunto «backup MySQL» y te lo enviaré totalmente gratis
¿Quieres trabajar con nosotros?
Ya sea que necesites mejorar el rendimiento de consultas existentes, planificar y ejecutar migraciones de datos críticas, diseñar bases de datos desde cero o mantener un entorno de base de datos estable, estamos aquí para ayudarte.
Trabajamos con una amplia variedad de sistemas de gestión de bases de datos (DBMS) y estamos comprometidos en proporcionar soluciones adaptadas a tus necesidades específicas. Puedes consultar nuestra lista completa de servicios aquí.
Confía en nosotros para optimizar tus bases de datos y liberar tiempo y recursos para que puedas concentrarte en lo que realmente importa: hacer crecer tu negocio.
¡Contáctanos hoy mismo y descubre cómo podemos ayudarte a lograr un rendimiento óptimo en tu entorno de bases de datos!
Deja una respuesta