xtrabackup
Percona XtraBackup
xtrabackup es la principal herramienta open source para backup físico hot de MySQL, MariaDB y Percona Server, desarrollada y mantenida por Percona. A diferencia de mysqldump y mydumper — que producen dumps lógicos — copia directamente los ficheros de datos InnoDB en el sistema de ficheros mientras la base de datos está en ejecución, sin requerir downtime.
Cómo funciona #
El proceso tiene dos fases:
- Backup:
xtrabackupcopia los ficheros.ibdde InnoDB y simultáneamente lee el redo log para registrar todas las modificaciones que ocurren durante la copia. El resultado es un conjunto de ficheros de datos + un fichero de redo log que representan un estado inconsistente de la base de datos (los ficheros se copiaron en momentos ligeramente distintos) pero reconstruible. - Prepare: antes del restore,
xtrabackup --prepareejecuta un crash recovery aplicando el redo log a los ficheros de datos, llevándolos a un estado consistente.
Cuándo es la mejor opción #
En datasets superiores a ~100 GB el tiempo de backup de xtrabackup es típicamente 5-10 veces más rápido que mysqldump y 2-4 veces más rápido que mydumper, porque salta completamente la regeneración de INSERTs. La ventaja es aún más marcada en fase de restore, donde una copia binaria + crash recovery tarda minutos frente a las horas de un restore lógico.
Es la opción obligada cuando la ventana de mantenimiento es estrecha, para snapshots pre-upgrade y para migraciones lift-and-shift hacia nuevos storages.
Restricciones a tener en cuenta #
- Las tablas MyISAM se bloquean durante su copia (FLUSH TABLES WITH READ LOCK): en bases de datos con MyISAM residual esto puede causar bloqueos aplicativos de minutos
- El backup requiere acceso directo al sistema de ficheros del servidor MySQL
- El restore requiere aplicar el redo log antes de poder arrancar la instancia (fase
--prepare)