Acabo de enterarme de mysqlpump : parece que se lanzó con MySQL 5.7, pero MySQL 5.7 todavía incluye mysqldump . Ambos son programas de respaldo, pero ¿alguien podría resumir las principales diferencias? ¿Hay escenarios en los que uno de ellos podría funcionar mejor? ¿MySqldump se eliminará gradualmente para mysqlpump?
17
Respuestas:
Dado que yo mismo estaba investigando esto, aquí hay un resumen de lo que encontré.
Según una publicación de blog de 2015 del equipo de desarrollo de MySQL , las principales ventajas de mysqlpump son que puede usar múltiples subprocesos en paralelo para acelerar el volcado y que no comparte los requisitos de compatibilidad con versiones anteriores de mysqldump, lo que debería abrir la puerta para más mejoras
Sin embargo, la publicación advierte que mysqlpump "actualmente no es seguro como un reemplazo de respaldo de propósito general" porque los subprocesos individuales pueden generar sus secciones del volcado desde diferentes estados de la base de datos. No menciona ningún plan para desaprobar mysqldump.
Giuseppe Maxia jugó con mysqlpump en 2015 y descubrió que la velocidad de descarga era bastante pequeña. Apreciaba la nueva capacidad de seleccionar con precisión qué objetos volcar, pero señaló que cargar el volcado de nuevo solo se puede realizar con un solo subproceso y que (a diferencia de mysqldump) los volcados solo se pueden volver a cargar en bases de datos con el mismo nombre.
fuente
mysqlpump
es un software de código cerrado (futuro incierto). Una alternativa de código abiertomysqlpump
es github.com/maxbube/mydumpermydumper
También he estado investigando las diferencias entre estas dos utilidades, y además de lo que se menciona en la respuesta de @ Neil , parece que mysqlpump también tiene menos opciones que mysqldump , como no permitir lo siguiente:
--compatible=
--tab
, y sus opciones relacionadas de:--fields-terminated-by=
--fields-enclosed-by=
--fields-optionally-enclosed-by=
--fields-escaped-by=
--lines-terminated-by=
--quote-names
--add-drop-trigger
--allow-keywords
--apply-slave-statements
--comments
--compact
--compatible
--create-options
--delete-master-logs
--disable-keys
--dump-date
--dump-slave
--enable-cleartext-plugin
--flush-logs
--flush-privileges
--force
--ignore-error
--include-master-host-port
--lock-all-tables
--lock-tables
--master-data
--no-autocommit
--no-tablespaces
--opt
--order-by-primary
--pipe
--quick
--quote-names
--set-gtid-purged
--shared-memory-base-name
--skip-add-drop-table
--skip-add-locks
--skip-comments
--skip-compact
--skip-disable-keys
--skip-extended-insert
--skip-opt
--skip-quick
--skip-quote-names
--skip-triggers
--skip-tz-utc
--verbose
--where
--xml
Por otro lado, mysqlpump tiene las siguientes opciones que no están disponibles en mysqldump
--compress-output
--default-parallelism
--defer-table-indexes
--exclude-databases=
--exclude-events=
--exclude-routines=
--exclude-triggers=
--exclude-users=
--include-events=
--include-routines=
--include-triggers=
--include-users=
--parallel-schemas=
--skip-definer
--users
--watch-progress
Renombrado o similar:
--no-data
en volcado ==--skip-dump-rows
en bomba--no-set-names
in dump no existe en pump , pero su sinónimo ---skip-set-charset
- existe en ambos--ignore-table=
in dump es principalmente--exclude-tables=
en pump excepto que--exclude-tables
puede especificar todas las tablas, separadas por comas, y permite caracteres comodín (%
y_
)--tables
in dump es principalmente--include-tables=
en pump excepto que--include-tables
puede especificar todas las tablas, separadas por comas, y permite caracteres comodín (%
y_
). Además, se--tables
anula--databases
en el volcado , mientras que--include-tables=
en la bomba no.--databases
tanto en dump como en pump está principalmente--include-databases=
en pump excepto que--include-databases
puede especificar todas las bases de datos, separadas por comas, y permite caracteres comodín (%
y_
).fuente
Aquí está el resumen de lo que entendí entre las dos herramientas de copia de seguridad.
La definición de mysqldump se da en la página del manual
Mysqldump es muy fácil de usar y la sintaxis también es muy simple. Cuando ejecutamos esto, convierte todas las filas a consultas SQL e imprime eso en la salida estándar. Podemos redirigir esta salida a un archivo externo (>) o usando una opción: archivo de resultados.
De forma predeterminada, mysqldump no volca las tablas de información_esquema y nunca toma rendimiento_esquema. El principal inconveniente de mysqldump es que usa solo un hilo mientras realiza la copia de seguridad y la restauración.
Mysqlpump es otra utilidad que se introdujo en MySQL 5.7 con algunas características más en comparación con mysqldump
La definición de mysqlpump se da en la página del manual
Las principales características son
Procesamiento en paralelo (multiproceso) para acelerar la copia de seguridad
Indicador de progreso
Volcado de cuentas de usuario como (crear, otorgar declaraciones no como inserciones para la base de datos del sistema MySQL)
De manera predeterminada, mysqlpump no realiza una copia de seguridad de las bases de datos del sistema, como el esquema de información, el esquema de rendimiento y algunas tablas del sistema MySQL, a menos que se mencione explícitamente.
También tiene opciones –include-database, –exclude-database, –include-table, –exclude-table con coincidencia de patrones (%).
Estas opciones son más convenientes para los usuarios que desean respaldar solo unos pocos objetos de un conjunto de datos completo.
En general, mysqlpump divide su trabajo en fragmentos y cada uno se asigna a una cola de subprocesos múltiples.
Esta cola multiproceso es procesada por N subprocesos (por defecto utiliza 2 subprocesos)
Podemos definir varios hilos usando esta opción –default-parallelism y –parallel-schemas.
Mientras que la restauración, utiliza un solo hilo que es el mismo que mysqldump, carece de restauración paralela.
Como complemento, tenemos una herramienta más que realiza la paralelización tanto en la copia de seguridad como en la restauración (donde faltan mysqlpump y mysqldump), que se llama mydumper y myloader . Esto se utilizará en gran medida al restaurar grandes conjuntos de datos.
Puede encontrar más detalles y sus opciones útiles de estas herramientas en este blog mysqldump vs mysqlpump vs mydumper .
fuente