La utilidad mysqlpump se introdujo con MySQL 5.7 y es una alternativa más rápida a la utilidad mysqldump más antigua disponible en versiones anteriores. Aunque tiene una funcionalidad similar a la de mysqldump, la utilidad mysqlpump se utiliza para realizar una copia de seguridad de bases de datos grandes usando paralelismo, lo que no está disponible en la antigua utilidad mysqldump. Puede realizar copias de seguridad de toda la base de datos o solo de unos pocos objetos seleccionados.
¿Qué es mysqlpump?
Presentado en MySQL 5.7, mysqlpump es una utilidad cliente que realiza copias de seguridad lógicas en las que se produce un conjunto de instrucciones SQL que pueden ejecutarse para restaurar el objeto de base de datos original. Resuelve el problema de las copias de seguridad lentas en mysqldump gracias a la compatibilidad con el paralelismo y el multiproceso. Algunas bases de datos contienen terabytes de datos, por lo que la exportación de datos a un archivo de texto sencillo puede tardar demasiado. La utilidad mysqlpump utiliza múltiples subprocesos en paralelo para transferir datos a un archivo de texto mucho más rápidamente. Debido a que se introdujo hace años, los desarrolladores de bases de datos MySQL han realizado mejoras en los últimos años para proporcionar una utilidad de mysqlpump más estable y ofrecer más opciones. Aunque es más rápida, la utilidad mysqlpump no tiene todas las opciones disponibles en mysqldump, por lo que solo se utiliza cuando los administradores necesitan una exportación rápida de una base de datos MySQL y sus datos.
Cómo instalar mysqlpump
Si tiene MySQL 5.7 o posterior, ya tiene acceso a mysqlpump. La utilidad se envía con el motor de la base de datos MySQL, por lo que no es necesario realizar ninguna instalación. Si tiene una versión anterior de MySQL , no puede usar mysqlpump, pero mysqldump es una alternativa viable.
Tanto si utiliza MySQL en Windows como Linux, la utilidad mysqlpump está disponible con el motor de base de datos MySQL. Puede usarlo abriendo la utilidad de línea de comandos en Windows o Linux y escribiendo “mysqlpump” con las numerosas opciones de parámetros para personalizar la manera en que la utilidad exporta los datos.
Uso básico y ejemplos de mysqlpump
Con MySQL instalado en su servidor, puede acceder a mysqlpump desde la línea de comandos. Abra la línea de comandos en Windows o Linux y podrá exportar un esquema de base de datos usando el siguiente comando:
mysqlpump --all-databases --user=root --password > full_backup.sql
El comando anterior exporta todos los esquemas de la base de datos al archivo full_backup.sql. El nombre de usuario y la contraseña que utilice deben tener acceso a las bases de datos que desee exportar, así que asegúrese de tener una cuenta de alto privilegio cuando use la utilidad mysqlpump.
Si ya está autenticado en MySQL , también puede deshacerse de los esquemas de bases de datos sin especificar un nombre de usuario y una contraseña:
mysqlpump --all-databases > full_backup.sql
Si prefiere vaciar una única base de datos, puede usar el siguiente comando:
mysqlpump myDB
El comando anterior exporta el esquema de la base de datos y sus datos para myDB. Puede exportar varias bases de datos separando cada nombre de base de datos con un carácter de espacio.
Es posible que los administradores quieran exportar solo tablas específicas dentro de una base de datos. Los datos de la tabla de volcado con mysqlpump pueden realizarse usando el siguiente comando:
mysqlpump myDB Customer Order
En el ejemplo anterior, la declaración de mysqlpump exporta las tablas Cliente y Pedido de la base de datos myDB. Observe que los nombres de las tablas están separados por un carácter de espacio.
Los administradores empresariales trabajan con copias de seguridad diferenciales e incrementales para evitar realizar siempre una copia de seguridad completa. Las copias de seguridad diferenciales contienen todos los datos modificados desde la última copia de seguridad completa. Una copia de seguridad incremental almacena todos los datos cambiados desde la última copia de seguridad, ya sea incremental o completa. Estos dos tipos de copias de seguridad no son posibles con mysqlpump, por lo que la utilidad solo puede usarse para realizar una copia de seguridad completa o parcial de las bases de datos y sus objetos.
Uso avanzado de mysqlpump
La utilidad mysqlpump ofrece unas cuantas opciones para el uso avanzado. La primera es la salida comprimida. Para las bases de datos grandes, el uso de la salida comprimida reducirá la cantidad de capacidad de la unidad necesaria para almacenar los archivos de copia de seguridad. Es especialmente útil en entornos empresariales en los que se almacenan varios archivos grandes para realizar copias de seguridad completas durante todo el mes.
Debe especificar un algoritmo de compresión cuando use mysqlpump. Puede usar LZ4, que se utiliza principalmente para la velocidad. El algoritmo zlib es más popular entre los administradores que usan gzip o la envoltura zlib. En este ejemplo, el algoritmo zlib se utiliza para generar un archivo gzip:
mysqlpump --compress --compress-output=zlib myDB > myDB_compressed.sql.gzip
Para cumplir las normas, las copias de seguridad almacenadas deben cifrarse. Los datos en reposo —es decir, almacenados en una unidad— deben cifrarse cuando se trata de información confidencial de identificación personal (PII), datos financieros o cualquier dato que cumpla las normativas de cumplimiento. En este ejemplo, el comando mysqlpump se canaliza y utiliza OpenSSL para crear una salida cifrada:
mysqlpump --all-databases | openssl enc -aes-256-cbc -k yourpassword > backup.xb.enc
Un aspecto de mysqlpump que hace que sea beneficioso para los administradores es su capacidad para descargar tablas y bases de datos en paralelo, lo que significa que puede usar múltiples procesos informáticos para exportar datos. Piense en los volcados paralelos como si se produjeran varias exportaciones simultáneamente en lugar de esperar a que cada objeto complete uno por uno. Al usar el procesamiento paralelo, los administradores aceleran el procedimiento de copia de seguridad.
Para usar el paralelismo con mysqlpump, debe definir el número de subprocesos que se utilizarán durante la exportación. El valor predeterminado es dos, pero puede definir más. La siguiente declaración utiliza cuatro subprocesos para exportar dos tablas —cliente y pedido— de la base de datos myDB:
Mysqlpump -default-parallelism=4 myDB Customer Order > full_backup.sql
mysqlpump frente a mysqldump
La opción de paralelismo de mysqlpump no está disponible en mysqldump, por lo que los administradores obtienen velocidades de copia de seguridad más rápidas con mysqlpump. La ventaja de mysqlpump son las copias de seguridad más rápidas en un entorno empresarial grande. En lugar de tardar varios minutos en realizar una copia de seguridad, el paralelismo en mysqlpump podría reducir el tiempo que se tarda en realizar una copia de seguridad de los datos a varios minutos.
No todas las opciones de mysqldump están disponibles en la nueva mysqlpump y debe tener al menos MySQL 5.7 instalado para usarlo. La importación no utiliza paralelismo, por lo que no tiene la ventaja de la velocidad de importación de los datos. Los administradores pueden optar por usar utilidades alternativas para importar datos.
Conclusión
Las copias de seguridad son una parte esencial de la administración de las bases de datos y la utilidad mysqlpump hace que el proceso sea mucho más rápido. Para realizar copias de seguridad rápidas de una base de datos completa o de unos pocos objetos de una base de datos, mysqlpump exporta esquemas y datos, los cifra y comprime y utiliza múltiples subprocesos con paralelismo. Utilícelo siempre que necesite crear una copia de seguridad completa de una base de datos o exportar varias tablas.