Cuando se trata de copias de seguridad y archivado de datos, los departamentos de TI a menudo están bajo presión para cumplir con los estrictos acuerdos de nivel de servicio, así como para ofrecer procedimientos de copia de seguridad más sólidos que minimicen el tiempo de inactividad, aceleren el proceso de copia de seguridad, el costo menos y cumplir con estrictos requisitos de seguridad.
Hay varias formas de realizar una copia de seguridad de una base de datos MySQL, pero podemos dividir estos métodos en dos grupos:lógicos y físicos.
Las copias de seguridad lógicas contienen datos que se exportan mediante comandos SQL y se almacenan en un archivo. Puede ser, por ejemplo, un conjunto de comandos SQL que, cuando se ejecutan, darán como resultado la restauración del contenido de la base de datos. Con algunas modificaciones en la sintaxis del archivo de salida, puede almacenar su copia de seguridad en archivos CSV.
Las copias de seguridad lógicas son fáciles de realizar, solo con una sola línea, puede realizar una copia de seguridad de toda su tabla, base de datos o todas las bases de datos mysql en la instancia.
Desafortunadamente, las copias de seguridad lógicas tienen muchas limitaciones. Suelen ser más lentos que uno físico. Esto se debe a la sobrecarga necesaria para ejecutar comandos SQL para obtener los datos y luego ejecutar otro conjunto de comandos SQL para devolver los datos a la base de datos. Son menos flexibles, a menos que escriba cargas de trabajo de copia de seguridad complejas que incluyan varios pasos. No funciona bien en un entorno paralelo, proporciona menos seguridad, y así sucesivamente.
Copias de seguridad físicas en MySQL World
MySQL no viene con una copia de seguridad física en línea para la edición comunitaria. Puede pagar por una versión Enterprise o utilizar una herramienta de terceros. La herramienta de terceros más popular del mercado es XtraBackup. Los que vamos a comparar en este artículo de blog.
Percona XtraBackup es el popular software de copia de seguridad en caliente MySQL/MariaDB de código abierto que realiza copias de seguridad sin bloqueo para las bases de datos InnoDB y XtraDB. Cae en la categoría de copia de seguridad física, que consta de copias exactas del directorio de datos de MySQL y los archivos que se encuentran debajo.
Una de las mayores ventajas de XtraBackup es que no bloquea su base de datos durante el proceso de copia de seguridad. Para bases de datos grandes (más de 100 GB), proporciona un tiempo de restauración mucho mejor en comparación con mysqldump. El proceso de restauración implica preparar los datos de MySQL a partir de los archivos de respaldo, antes de reemplazarlos o cambiarlos con el directorio de datos actual en el nodo de destino.
Percona XtraBackup funciona recordando el número de secuencia de registro (LSN) cuando se inicia y luego copia los archivos de datos a otra ubicación. La copia de datos lleva tiempo y, si los archivos están cambiando, reflejan el estado de la base de datos en diferentes momentos. Al mismo tiempo, XtraBackup ejecuta un proceso en segundo plano que vigila los archivos del registro de transacciones (también conocido como registro de rehacer) y copia los cambios. Esto debe hacerse continuamente porque los registros de transacciones se escriben de forma rotativa y se pueden reutilizar después de un tiempo. XtraBackup necesita los registros del registro de transacciones para cada cambio en los archivos de datos desde que comenzó la ejecución.
Usando esta herramienta puedes:
- Cree copias de seguridad calientes de InnoDB, que se completan de forma rápida y confiable, sin pausar su base de datos ni agregar carga al servidor
- Realizar copias de seguridad incrementales
- Mover tablas entre servidores MySQL en línea
- Cree nuevos esclavos de replicación de MySQL fácilmente
- Transmita copias de seguridad comprimidas de MySQL a otro servidor
- Ahorre espacio en disco y ancho de banda de red
MySQL Enterprise Backup ofrece copias de seguridad activas, en línea y sin bloqueos en múltiples plataformas. No es una herramienta de copia de seguridad gratuita, pero ofrece muchas funciones. El costo estándar de la licencia es de $5000 (pero puede variar según su acuerdo con Oracle).
Plataformas compatibles con el proceso de copia de seguridad
MySQL Empresa
Puede ejecutarse en Linux, Windows, Mac y Solaris. Lo que es esencial, también puede almacenar copias de seguridad en cinta, que suele ser una solución más económica que escribir en discos. Las escrituras directas en cinta admiten la integración con Veritas Netbackup, Tivoli Storage Manager y EMC NetWorker.
Copia de seguridad adicional
XtraBackup puede ejecutarse solo en la plataforma Linux, lo que sin duda puede ser un impedimento para quienes se ejecutan en Windows. Una solución aquí puede ser la replicación en el esclavo que se ejecuta en Linux y la copia de seguridad desde allí.
Principales diferencias del proceso de copia de seguridad
MySQL Enterprise Backup proporciona un amplio conjunto de características y funciones de respaldo y recuperación, incluidas mejoras significativas en el rendimiento con respecto a los métodos de respaldo de MySQL existentes.
Oracle muestra que la copia de seguridad empresarial es incluso 49 veces más rápida que mysqldump. Eso, por supuesto, puede variar según sus datos, sin embargo, hay muchas funciones para mejorar el proceso de copia de seguridad. Una copia de seguridad paralela es definitivamente una de las mayores diferencias entre mysqldump y la copia de seguridad empresarial. Aumenta el rendimiento mediante el procesamiento de subprocesos múltiples. Sin embargo, la función más interesante es la compresión.
--comprimir
Crea una copia de seguridad en formato comprimido. Para una copia de seguridad regular, entre todos los motores de almacenamiento compatibles con MySQL, solo se comprimen los archivos de datos en formato InnoDB, y llevan la extensión .ibz después de la compresión. De manera similar, para una copia de seguridad de una sola imagen, solo se comprimen los archivos de datos del formato InnoDB dentro de la imagen de copia de seguridad. Los archivos de registro binario y de retransmisión se comprimen y guardan con la extensión .bz cuando se incluyen en una copia de seguridad comprimida.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Copias de seguridad MySQL con ClusterControl
ClusterControl le permite programar copias de seguridad usando XtraBackup y mysqldump. Puede almacenar los archivos de copia de seguridad localmente en el nodo donde se realiza la copia de seguridad, o los archivos de copia de seguridad también se pueden transmitir al nodo del controlador y comprimirse sobre la marcha. No es compatible con la copia de seguridad de MySQL Enterprise; sin embargo, con las funciones ampliadas de mysqldump y XtraBackup, puede ser una buena opción.
ClusterControl es el sistema de gestión de base de datos de código abierto todo incluido para usuarios con entornos mixtos. Proporciona funciones avanzadas de gestión de copias de seguridad para MySQL o MariaDB.
Con ClusterControl puede:
- Crear políticas de copia de seguridad
- Supervise el estado de las copias de seguridad, las ejecuciones y los servidores sin copias de seguridad
- Ejecute copias de seguridad y restauraciones (incluida una recuperación de un punto en el tiempo)
- Retención de copias de seguridad de control
- Guardar copias de seguridad en almacenamiento en la nube
- Validar copias de seguridad (prueba completa con la restauración en el servidor independiente)
- Cifrar copias de seguridad
- Comprimir copias de seguridad
- Y muchos otros
Conclusión
Como administrador de base de datos, debe asegurarse de que se realicen copias de seguridad de las bases de datos con regularidad y de que se implementen y prueben los procedimientos de recuperación apropiados. Tanto Percona XtraBackup como MySQL Enterprise Backup brindan a los DBA una solución de respaldo en línea de alto rendimiento con tecnología de cifrado y compresión de datos para garantizar que sus datos estén protegidos en caso de tiempo de inactividad o interrupción
Las copias de seguridad deben planificarse de acuerdo con el requisito de restauración. La pérdida de datos puede ser total o parcial. Por ejemplo, no siempre es necesario recuperar todos los datos. En algunos casos, es posible que desee realizar una recuperación parcial restaurando las tablas o filas que faltan. Con el conjunto de funciones de alcance, ambas soluciones serían un gran reemplazo de mysqldump, que sigue siendo un método muy popular para hacer la copia de seguridad. Tener mysqldump también es importante para la recuperación parcial, donde las bases de datos corruptas se pueden corregir analizando el contenido del volcado. Los registros binarios nos permiten lograr una recuperación puntual, por ejemplo, hasta justo antes de que el servidor MySQL se cayera.
Esto es todo para la primera parte, en la siguiente parte probaremos el rendimiento de ambas soluciones y ejecutaremos algunos escenarios reales de copia de seguridad y recuperación.