MariaDB Enterprise Backup es una solución de copia de seguridad de MariaDB Corporation con una serie de funciones, como copias de seguridad sin bloqueo, copias de seguridad completas, copias de seguridad incrementales, copias de seguridad parciales y recuperación de un punto en el tiempo.
A menudo recibimos preguntas sobre las diferencias entre las funciones de gestión de copias de seguridad de MariaDB Backup y ClusterControl. Así que de esto se trata este blog.
Crear copias de seguridad frente a administrarlas
MariaDB Backup es una bifurcación de Percona XtraBackup y es una herramienta para realizar copias de seguridad físicas del servidor MariaDB. Le permite hacer cosas como copias de seguridad completas, incrementales y parciales. También se puede realizar una recuperación puntual con la ayuda de registros binarios. Según la documentación, la versión "Enterprise" de la copia de seguridad de MariaDB proporciona "seguimiento de declaraciones DDL, lo que reduce el tiempo de bloqueo durante las copias de seguridad".
ClusterControl es compatible con MariaDB Backup como método de respaldo para MariaDB. Proporciona una interfaz gráfica de usuario para programar copias de seguridad completas, copias de seguridad incrementales y copias de seguridad parciales, y realizar la recuperación de archivos de copia de seguridad o también automatiza la recuperación de un punto en el tiempo. Además, ClusterControl proporciona funciones como cifrado, compresión, carga en el almacenamiento en la nube (Azure, AWS, Google Cloud) y verificación automática de las copias de seguridad para garantizar que sean recuperables.
Copia de seguridad completa y restauración
Para realizar una copia de seguridad completa con MariaDB Enterprise Backup, puede utilizar las utilidades de comando mariabackup. Hay 4 entradas de parámetros después del comando mariabackup. Los parámetros son:
- Copia de seguridad - esto se usa para hacer una copia de seguridad de la base de datos usando las utilidades mariabackup.
- Preparar - para hacer una copia de seguridad consistente en un punto en el tiempo, debe preparar la copia de seguridad después de ejecutar la copia de seguridad sin formato.
- Copia de respaldo - se utiliza para restaurar la copia de seguridad extraída al directorio de datos predeterminado de mysql. Copiará la copia de seguridad en el directorio mysql, sin eliminar la copia de seguridad original.
- Retroceder - usado para restaurar la copia de seguridad extraída al directorio de datos mysql moviendo todos los directorios de copia de seguridad.
Si desea hacer una copia de seguridad y restaurar, simplemente pase el parámetro obligatorio después del comando mariabackup. Para un comando de respaldo completo, a continuación se muestra un script de muestra que utiliza MariaDB Backup.
mariabackup --backup --target-dir=/backup/full/ --user=bkpuser --password=p4sswordb4ckup
Hay algunas opciones que debe definir, como --target-dir, que es la ubicación de destino para los archivos de copia de seguridad, --user, que se utiliza para los usuarios con credenciales para la copia de seguridad y --password para la contraseña de respaldo de la credencial.
Para que la copia de seguridad sea coherente en un punto en el tiempo, debe ejecutar la preparación una vez finalizada la copia de seguridad completa. Los archivos de datos no son coherentes hasta que ejecuta la preparación, porque cuando ejecuta la copia de seguridad, los archivos de datos se copiaron en diferentes momentos durante la copia de seguridad.
Para ejecutar preparar copia de seguridad:
mariabackup --prepare --target-dir=/backup/full
Después de ejecutar preparar, hará que la copia de seguridad esté lista para ser restaurada. Verá el mensaje en la última línea, como se muestra a continuación, cuando la preparación se haya realizado correctamente.
InnoDB: Shutdown completed; log sequence number 9553231
Puede ejecutar el comando de restauración utilizando la copia de respaldo. Aquí está el script de muestra para restaurar la copia de seguridad:
mariabackup --copy-back --target-dir=/backup/full
Puede poner la secuencia de comandos anterior en un comando de secuencia de comandos de shell y otorgar permiso ejecutable, configurarlo en el programador del sistema operativo.
Copia de seguridad y restauración usando ClusterControl Backup Management es muy fácil de usar. ClusterControl admite copias de seguridad lógicas y copias de seguridad físicas. Para la copia de seguridad lógica, ClusterControl utiliza mysqldump y para la copia de seguridad física utiliza la copia de seguridad completa e incremental de mariabackup.
Hay dos opciones sobre cómo desea hacer la copia de seguridad; puede crear la copia de seguridad directamente o puede programar la copia de seguridad.
También puede habilitar algunas opciones como cifrado, compresión, subproceso de copia paralela como se muestra a continuación:
Restaurar la copia de seguridad es tan fácil como crear la copia de seguridad. Solo necesita seleccionar el archivo de copia de seguridad completo que desea restaurar.
Hay dos opciones sobre cómo desea restaurar la copia de seguridad; puede restaurar la copia de seguridad en los nodos donde se realizó la copia de seguridad o puede restaurar la copia de seguridad en un host independiente dedicado.
Copia de seguridad y restauración incrementales
Hacer una copia de seguridad completa de una base de datos muy grande requerirá mucho tiempo y recursos. La copia de seguridad incremental se utiliza para realizar una copia de seguridad de los cambios después de realizar la última copia de seguridad completa.
Cuando se ejecuta la copia de seguridad incremental, MariaDB Enterprise Backup comparará la copia de seguridad completa anterior o la copia de seguridad incremental para encontrar los últimos cambios.
mariabackup --backup --incremental-basedir=/backup/full --target-dir=/backup/incr --user=bkpuser --password=p4sswordb4ackup
Antes de realizar la copia de seguridad incremental, debe asegurarse de que se haya preparado una copia de seguridad completa. Después de eso, puede ejecutar la copia de seguridad incremental, aplicándola a la última copia de seguridad completa.
mariabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/incr
Después de que la copia de seguridad incremental se haya aplicado a la copia de seguridad completa, el directorio de copia de seguridad completa ahora tendrá todos los datos de la copia de seguridad preparados.
La restauración de la copia de seguridad completa preparada con todos los cambios incrementales se puede realizar a través de:
mariabackup --copy-back --target-dir=/backup/full
Para realizar una copia de seguridad incremental en ClusterControl, puede elegir mariabackup incremental. Debe tener la copia de seguridad completa preparada antes de realizar la copia de seguridad incremental.
ClusterControl encontrará automáticamente la copia de seguridad completa más cercana cuando ejecute la copia de seguridad incremental. Y para restaurar la copia de seguridad, puede elegir la copia de seguridad y la restauración completamente preparadas. Le preguntará cómo desea restaurar la copia de seguridad, ya sea en el nodo o en el host independiente. Restaurará la copia de seguridad, incluidos los cambios incrementales.
Copia de seguridad y restauración parciales
La copia de seguridad parcial especifica qué base de datos o tabla desea respaldar. Puede elegir una lista de bases de datos y tablas para respaldar, o puede excluir algunas bases de datos y tablas de la copia de seguridad. Las opciones incluyen:--databases, --databases-exclude, --tables, --tables-exclude
A continuación se muestra un script de muestra para realizar la copia de seguridad parcial de la tabla card_data.
mariabackup --backup --target-dir=/backup/partial --user=bkpuser --password=p4sswordb4ckup --tables=card_data
Aún debe preparar la copia de seguridad parcial completa para que la copia de seguridad sea coherente en un momento determinado mediante la ejecución del siguiente comando:
mariabackup --prepare --export --target-dir=/backup/partial
Realizar una restauración parcial es muy diferente en comparación con la restauración de una copia de seguridad completa y una copia de seguridad incremental. Debe preparar las tablas y la base de datos en el servidor MariaDB en ejecución y luego copiar manualmente los archivos de datos en el directorio de datos mysql.
Por ejemplo, desea realizar una restauración parcial de la tabla card_data (tabla sin particiones).
- Cree la tabla vacía de card_data con la misma estructura en la base de datos de destino
- Ejecute el tablespace DISCARD en la tabla card_data.
ALTER TABLE carddb.card_data DISCARD TABLESPACE;
- Copie los archivos de datos en el directorio de datos mysql
cp /backup/partial/carddb/card_data.* /var/lib/mysql/carddb
- Cambiar el propietario de los archivos a mysql
chown mysql:mysql /var/lib/mysql/carddb/card_data.*
- Lo último, importa el tablespace:
ALTER TABLE carddb.card_data IMPORT TABLESPACE;
La copia de seguridad parcial en ClusterControl es realmente sencilla, solo necesita habilitar la opción de copia de seguridad parcial. Le dará la opción de incluir o excluir bases de datos y tablas como se muestra a continuación:
La siguiente parte es similar a la copia de seguridad completa y la copia de seguridad incremental, puede elige configuraciones como encriptación y compresión.
Restaurar la copia de seguridad parcial es exactamente igual que cuando restauramos la copia de seguridad completa. Solo necesita elegir la copia de seguridad parcial, y el resto será manejado por ClusterControl.
Recuperación de un punto en el tiempo
Restaurar la copia de seguridad completa o la copia de seguridad incremental le brinda una copia de seguridad desde el momento en que se realizó la copia de seguridad, pero no le brinda ningún dato que haya surgido después de que se realizó la copia de seguridad. Estos cambios estarían en el registro binario. Cuando realice la copia de seguridad preparada con binlog habilitado, habrá un archivo llamado xtrabackup_binlog_info. El archivo contiene un archivo de registro binario y la posición del último número de secuencia.
Puede realizar la recuperación de un punto en el tiempo extrayendo los cambios a SQL, como después de que se haya realizado la restauración. Puede ejecutar mysqlbinlog para extraer la hora específica en el nodo de la base de datos de origen y aplicar el SQL en el nodo de la base de datos de destino/restaurada.
La recuperación de un punto en el tiempo (PITR) en ClusterControl se puede habilitar como se muestra a continuación:
Debe definir hasta qué punto recuperar, hay dos opciones admitidas que se basan en el tiempo o en la posición. Para el tiempo, solo necesita completar la hora exacta en que se restaurarán los datos. Para la posición basada, debe completar el nombre y la posición del binlog. El resto de la restauración es similar.
Conclusión
Eso es todo por ahora. Como hemos visto anteriormente, MariaDB Backup es una buena herramienta con muchas opciones. ClusterControl proporciona una interfaz gráfica de usuario fácil de usar para realizar los procedimientos de copia de seguridad. También agrega una serie de características como encriptación, compresión, programación, gestión de retención y verificación automática de copias de seguridad.