
Suponga que su organización utiliza MariaDB para administrar sus bases de datos existentes como alternativa a MySQL. En ese caso, probablemente ya sepa que tiene muchas opciones diferentes para asegurar y hacer copias de seguridad de sus bases de datos o restaurarlas si alguna vez experimenta un problema. Sin embargo, no siempre está claro qué opciones debe tomar para maximizar su seguridad y proteger mejor los activos de su empresa.
Para ayudar, este artículo destaca muchas de las mejores prácticas y recomendaciones específicas para partes críticas de su configuración de MariaDB. También ofrecerá una mirada más cercana a la mejor solución para proteger datos de misión crítica: una combinación bien diseñada de estas mejores prácticas de configuración y un sistema de copia de seguridad y restauración granular, consciente de la aplicación.
¿Qué es Mariabackup?
Mariabackup es una herramienta de código abierto creada por MariaDB para iniciar copias de seguridad en línea para tablas InnoDB, Aria, MyRocks y MyISAM. La característica fue bifurcada originalmente de Percona XtraBackup 2.3.8 y también proporciona copias de seguridad "en caliente en línea" (o "hot backups") para InnoDB. Mariabackup está disponible en Windows y Linux.
- --apply-log — Prepara la copia de seguridad actual para restaurar el servidor MariaDB.
- --apply-log-only — Se utiliza para rehacer la etapa de aplicación del registro.
- --backup — Inicia la copia de seguridad de MariaDB.
- --binlog-info — Especifica la ruta para recuperar las coordenadas del registro binario del servidor.
- --close-files — Se utiliza para determinar si se deben cerrar los descriptores de archivos.
- --compress — Habilita la compresión de la copia de seguridad.
- --compress-chunk-size — Especifica el tamaño del búfer operativo para los hilos de compresión.
- --compress-threads — Especifica el número de hilos de compresión.
- --copy-back — Se utiliza para las operaciones de restauración de copias de seguridad en el directorio de datos.
- --databases — Especifica copias de seguridad de tablas y bases de datos.
Características de la copia de seguridad de Mariabackup
La herramienta de copia de seguridad de MariaDB tiene varias características para hacer copias de seguridad de múltiples bases de datos de manera rápida y eficiente. Los usuarios pueden configurar réplicas a partir de una copia de seguridad, cifrar y comprimir copias de seguridad, y restaurar una sola base de datos o tablas y particiones individuales a partir de una copia de seguridad.
La herramienta admite los siguientes tipos de copia de seguridad:
- Copia de seguridad completa
- Copia de seguridad parcial
- Copia de seguridad incremental
También es compatible con SST con Galera Cluster. La copia de seguridad y restauración de MariaDB puede recuperar tablas a través de cifrado de datos en reposo, compresión de páginas InnoDB y el motor de almacenamiento MyRocks. Además, minimiza los bloqueos durante la copia de seguridad y garantiza un sólido soporte de copia de seguridad para todos los motores de almacenamiento de MariaDB Enterprise Backup.
¿Cómo hago una copia de seguridad de mi base de datos MariaDB?
Hay tres opciones principales para iniciar una copia de seguridad de la base de datos MariaDB: Mariabackup, Mysqldump y una solución dedicada de copia de seguridad y restauración.
Mariabackup
Mariabackup puede realizar una copia de seguridad completa e incremental para la base de datos MariaDB. Para iniciar una copia de seguridad completa de la base de datos, debe ejecutar Mariabackup a través de la opción --backup combinada con la opción --target-dir para especificar la ubicación de almacenamiento de la copia de seguridad. Para copias de seguridad completas, el directorio de destino debe estar vacío o no existir (antes de iniciar la copia de seguridad). Para crear una copia de seguridad completa, ejecute el siguiente comando:
Bash
$ mariabackup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariabackup --password=mypassword
La duración y el tamaño de la copia de seguridad dependen del volumen de la base de datos o de la tabla que desee respaldar. Puede abortar el proceso de copia de seguridad ya que no modifica la base de datos. Mariabackup escribirá la copia de seguridad en el directorio de destino. Si dicho directorio no existe, la herramienta creará uno por usted. Si el directorio de destino existe pero no está vacío, la herramienta generará un error y abortará el proceso. Después de haber creado una copia de seguridad completa, puede iniciar una copia de seguridad incremental a través del siguiente comando:
Bash
$ mariabackup --backup \
--target-dir=/var/mariadb/inc1/ \
--incremental-basedir=/var/mariadb/backup/ \
--user=mariabackup --password=mypassword
Archivo de copia de seguridad mariadb-dump (mysqldump)
MariaDB proporciona una herramienta de copia de seguridad incorporada, Mysqldump, para hacer copias de seguridad o transferir múltiples bases de datos en CSV, XML u otro texto delimitado.
Para exportar todas las bases de datos de MariaDB, use el comando: mysqldump -u xx -p -x -A > /data/backup/dbs.sql
Para volcar múltiples bases de datos: shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sq o para volcar todas las bases de datos: shell> mysqldump --all-databases > all_databases.sql
Para hacer una copia de seguridad de una base de datos completa: shell> mysqldump db_name > backup-file.sql
Para hacer una copia de seguridad de una sola tabla: mysqldump --user=xx --password --lock-tables db1 table1 > /data/backup/db1_table1.sql
Copia de seguridad de bases de datos de Acronis
Acronis Cyber Protect Cloud tiene un agente dedicado para copias de seguridad de MySQL / MariaDB. Siga los pasos a continuación para realizar copias de seguridad en una máquina en un estado consistente:
- Para Windows, asegúrese de que la carpeta de MySQL Tools esté en el %PATH% de Windows en la máquina. Asegúrese de que la conexión local esté permitida para el cliente MySQL sin pasar explícitamente credenciales en la máquina de la que se realiza la copia de seguridad.
- Descargue y descomprima los scripts para ejecutar antes y después de la creación de la instantánea.
- Los scripts bloquearán las tablas a través del comando "FLUSH TABLES WITH READ LOCK;" y las desbloquearán después de que Acronis complete la instantánea.
- Coloque config.sh en el directorio de trabajo de los scripts.
- Aplique los scripts.
- Al hacer una copia de seguridad de una máquina física, especifique los scripts en la sección "Comandos de pre-post captura de datos" de las opciones del plan de copia de seguridad. Al hacer una copia de seguridad de una máquina virtual (VMware) a nivel de hipervisor (copia de seguridad sin agente), debe colocar los scripts en carpetas específicas de la máquina virtual. Las direcciones de los directorios se pueden encontrar en este artículo.
¿Cómo restaurar la copia de seguridad de la base de datos MariaDB?
Hay un paso crítico que debe completarse antes de restaurar con éxito una copia de seguridad de MariaDB: la Preparación.
Preparar el archivo de copia de seguridad para la restauración
Los archivos de datos creados en el directorio de destino por MariaDB no son consistentes en un momento dado. Dado que la información se copia en diferentes momentos durante el proceso de copia de seguridad, debe actualizarse para garantizar una restauración exitosa. Si intenta restaurarla sin preparación, InnoDB identifica las inconsistencias y falla para proteger el sistema de la corrupción. Para preparar una copia de seguridad para la recuperación, debe asegurarse de que sea consistente a través de la opción --prepare.
Bash
$ mariabackup --prepare \
--target-dir=/var/mariadb/backup/
Restaurar la copia de seguridad de la base de datos MariaDB
Una vez que tenga una copia de seguridad consistente (lo que significa que la preparación está completa), puede restaurar los datos de MariaDB usando la opción --move-back o la opción --copy-back. Recuerde que la opción --move-back mueve la copia de seguridad al datadir, lo que significa que los archivos de copia de seguridad originales se perderán.
- Detenga el proceso del servidor MariaDB.
- Asegúrese de que el datadir esté vacío.
- Ejecute MariaDB con una de las dos opciones discutidas anteriormente:
Bash
$ mariabackup --copy-back \
--target-dir=/var/mariadb/backup/
Corregir los permisos de archivo.
Cuando restaura una sola base de datos a través de Mariabackup, conserva los privilegios (tanto de archivo como de directorio) para los datos de la copia de seguridad. Sin embargo, escribirá la copia de seguridad en el disco como el usuario y grupo que restaura la base de datos. Por lo tanto, después de una restauración de MariaDB o SQL, es posible que deba especificar el propietario del directorio de datos para que coincida con el usuario/grupo. Típicamente, mysql para ambos. Puede cambiar recursivamente la propiedad del archivo al usuario/grupo mysql a través del comando:
Bash
$ chown -R mysql:mysql /var/lib/mysql/
¿Cuál es la diferencia entre la copia de seguridad lógica y física de MariaDB?
Esencialmente, las copias de seguridad lógicas contienen las sentencias SQL necesarias para restaurar las copias de seguridad — p. ej., CREATE TABLE, CREATE DATABASE, INSERT — mientras que las copias de seguridad físicas se crean copiando archivos y directorios individuales. A continuación, describiremos las principales diferencias entre las copias de seguridad físicas y lógicas.
Las copias de seguridad lógicas son más flexibles
Las copias de seguridad lógicas se pueden restaurar en diferentes versiones de MariaDB, configuraciones de hardware o DBMS. Por otro lado, no puede importar copias de seguridad físicas en hardware muy diferente, diferentes DBMS, o incluso una versión diferente de MariaDB.
Puede realizar copias de seguridad lógicas en diferentes niveles
Las copias de seguridad lógicas se pueden realizar a nivel de base de datos y de tabla. Por otro lado, las copias de seguridad físicas asignan bases de datos a los niveles de directorio y archivo. En el motor de almacenamiento InnoDB (y MyISAM), cada tabla de la base de datos tiene un conjunto equivalente de archivos. En versiones anteriores a MariaDB 5.5, los archivos InnoDB tienen un número predeterminado de tablas almacenadas, lo que significa que no puede hacer copias de seguridad por tabla.
Las copias de seguridad lógicas son más grandes que una copia de seguridad física correspondiente.
Las copias de seguridad lógicas tardan más tiempo en respaldarse y restaurarse que una copia de seguridad física correspondiente.
Las copias de seguridad lógicas excluyen las copias de seguridad de registros y los archivos de configuración del proceso de copia de seguridad.
MariaDB: Herramientas de copia de seguridad para múltiples bases de datos
Puede usar varias opciones de copia de seguridad y restauración para asegurar los datos de MariaDB.
Mariadb-backup
Como se discutió, Mariadb-backup es una bifurcación de Percona XtraBackup. Es compatible con el cifrado de datos en reposo y la compresión de MariaDB 10.1.
Archivo mariadb-dump
mariadb-dump (una versión más nueva de mysqldump) realiza copias de seguridad lógicas. Es una excelente opción para un tamaño de datos relativamente pequeño, ofreciendo las opciones de copia de seguridad y restauración más flexibles. El archivo mariadb-dump puede volcar contenido en formatos SQL, CSV o XML para ser importado a otra base de datos. Puede exportar el archivo a otras versiones de bases de datos MariaDB, MySQL o a otro DBMS, como se discutió. (esto último es válido si no hay sentencias específicas del DBMS en el volcado)
mariadb-dump puede volcar disparadores y múltiples tablas, ya que son parte de la definición de la tabla. No obstante, necesita parámetros adicionales para recrear procedimientos almacenados, eventos y vistas. (p. ej., --routines, --events)
Copias de seguridad lógicas de InnoDB
El Buffer Pool es un componente crítico de InnoDB para optimizar MariaDB. El Buffer Pool recopila información e índices a través de escaneos de tablas para almacenar en su memoria. Si los volúmenes de InnoDB no caben en la memoria, el Buffer Pool debe contener los datos a los que se accede con mayor frecuencia. (con el argumento de que los datos a los que se accedió por última vez también son candidatos para el Buffer Pool) Si no presenta a InnoDB archivos de configuración adecuados, la característica puede copiar el contenido completo de la tabla durante los escaneos de tablas en el Buffer Pool. Y como InnoDB realiza una copia de seguridad lógica, siempre implica escaneos completos de la tabla.
¿Cómo exportar bases de datos a través de MySQLdump?
Mysqldump es una utilidad de consola que exporta bases de datos fácilmente a un archivo SQL (basado en texto). Necesitará un nombre de base de datos y credenciales para una cuenta con al menos un nivel de acceso medio. (por ejemplo, puede usar una cuenta de acceso de solo lectura completo) Para exportar el volcado SQL, use este comando:
Bash
$ mysqldump -u username -p database_name > data-dump.sql
El comando no producirá una salida visual, pero puede verificar el registro de transacciones y el contenido de data-dump.sql para asegurarse de que sea un archivo de volcado SQL legítimo.
Opciones y consideraciones de configuración
Hay muchas opciones de configuración diferentes a considerar a medida que configura y mantiene MariaDB. Las siguientes secciones discutirán la autenticación, las contraseñas, las redes, el uso de imágenes de Docker y consideraciones adicionales para futuras actualizaciones.
Autenticación sin contraseñas
Si su organización prefiere permitir que los usuarios se autentiquen sin contraseñas, tiene algunas opciones dependiendo de su sistema operativo (Linux o Windows).
- Linux: En Linux, use el plugin de autenticación Unix_socket de MariaDB. Esto permite a los usuarios iniciar sesión en MariaDB a través del socket Unix, pero solo si el nombre de usuario coincide con el usuario del sistema. Además, el usuario root está configurado efectivamente para usar la autenticación de socket Unix por defecto, lo que evita la concesión accidental de acceso root a conexiones externas a través de un puerto de escucha.
- Windows: En entornos Windows, puede usar el plugin de tubería nombrada (named pipe), que proporciona una funcionalidad similar para implementaciones basadas en Windows: permite a los usuarios usar credenciales del sistema operativo al conectarse a MariaDB en Windows.
Múltiples métodos de autenticación
MariaDB permite múltiples métodos de autenticación. Esto proporciona una mayor flexibilidad donde los usuarios pueden autenticarse usando un socket Unix o, si eso no funciona, usar una contraseña.
Plugin de complejidad de contraseñas
Además, puede instalar el plugin cracklib-password-check para asegurarse de que los usuarios creen contraseñas complejas y no triviales en todo momento, un paso esencial para maximizar la seguridad.
Consideraciones sobre el almacenamiento de contraseñas
Si debe almacenar contraseñas, le sugerimos que siga estas mejores prácticas específicas:
- Nunca almacene contraseñas en texto claro.
- Asegúrese de que las contraseñas del servidor estén cifradas. Tenga en cuenta que el valor predeterminado en MariaDB es sha 1, que ya no se considera seguro.
- Además, ed_25519 no está configurado por defecto, pero es altamente recomendado.
Redes seguras de MariaDB
Si su configuración de implementación lo permite, puede ser mejor ejecutar skip-networking en el servidor con un socket Unix siempre que sea posible. Sin embargo, si esto no es posible, use nombres de host específicos para que los usuarios limiten las direcciones IP aceptadas externamente. Tenga en cuenta que solo se aceptarán las conexiones provenientes de 192.168.1.10.
Crear usuarios específicos de la aplicación
Un escenario a tener en cuenta: La implementación predeterminada permite el acceso root de la aplicación. Esto no solo no es necesario, sino que no es una buena idea, ya que puede generar vulnerabilidades en el futuro. Por ejemplo, en el caso de un error de seguridad en la aplicación, todo el servidor de la base de datos puede verse comprometido. En su lugar, sería mejor crear usuarios dedicados y otorgar derechos solo según sea necesario utilizando el principio de privilegio mínimo.
En el caso de una red no confiable
En el caso de que esté tratando con una red no confiable, asegúrese de que las comunicaciones cliente-servidor estén cifradas. Esto requiere que se generen y configuren certificados SSL para el servidor (use el comando CREATE USER para obtener información sobre los certificados especificados). Todo esto le ayuda a conectarse localmente sin necesidad de SSL. Al mismo tiempo, asegúrese de requerir SSL al conectarse desde un host externo.
MariaDB como imagen de Docker
MariaDB también se distribuye como una imagen de Docker. Esto significa que hay muchas maneras de configurar el servidor, incluida la compartición del socket Unix a través de un volumen o la exposición del puerto TCP/IP (3306). Para variables de entorno útiles, puede usar MARIADB_ROOT_PASSWORD/MYSQL_ROOT_PASSWORD.
Actualizaciones de MariaDB
Con MariaDB, la compatibilidad con versiones anteriores se mantiene en todas las versiones. Las características rara vez se eliminan; cuando lo son, generalmente se relacionan con conflictos con el estándar MySQL. Debe asegurarse de que el sistema MariaDB esté actualizado. Esto es importante porque MariaDB lanza correcciones de seguridad tan pronto como sea posible después del lanzamiento de MySQL de Oracle (generalmente 1-2 días), por lo que la aplicación de actualizaciones garantizará que tenga acceso a todos estos parches lo más rápido posible.
¿Cuál es la mejor solución para hacer copias de seguridad y restaurar MariaDB?
La mejor solución para proteger sus valiosos datos y bases de datos es una asociación entre las mejores prácticas de aplicación y una solución de copia de seguridad y restauración granular, consciente de la aplicación. Acronis ofrece una copia de seguridad de una sola pasada para restaurar completamente las cargas de trabajo de MariaDB y MySQL y una recuperación granular de bases de datos y tablas de MySQL/MariaDB si ocurre corrupción. La solución realiza copias de seguridad a nivel de servidor, VM, base de datos o tabla individual. Esto se convierte en una ventaja significativa para los usuarios que ejecutan múltiples sitios web o aplicaciones simultáneamente.
Los proveedores de alojamiento y servicios en la nube también apreciarán que la solución Acronis Cyber Protect Cloud es totalmente configurable e implementable a través de los paneles de control y sistemas de automatización que utilizan ahora — cPanel, Plesk, DirectAdmin, WHMCS y más. La combinación de ciberseguridad, protección de datos y copia de seguridad produce una mejor protección que requiere menos recursos, algo crítico para evitar infracciones y garantizar recuperaciones seguras y libres de malware. Para obtener más información sobre las ventajas de usar Acronis Cyber Cloud como plataforma MSP, visite hoy nuestra página de soluciones para proveedores de servicios.
Acerca de Acronis
Acronis es una empresa suiza fundada en Singapur en 2003, con 15 oficinas en todo el mundo y empleados en más de 50 países. Acronis Cyber Protect Cloud está disponible en 26 idiomas y en 150 países, y más de 21,000 proveedores de servicios lo utilizan para brindar protección a más de 750,000 empresas.



