Copia de seguridad de MySQL
Esta guía le ayudará a realizar una copia de seguridad completa de su base de datos MySQL sin apagar el sistema. Fue escrita y probada por el equipo de devops de Navixy, por lo que puede confiar en ella como una solución conocida y operativa.
Qué necesita para realizar una copia de seguridad completa de su base de datos MySQL sin apagar el sistema:
Conectar un volumen adicional en un disco separado al que se realizará la copia de seguridad.
Instalar software adicional - https://www.percona.com/software/mysql-database/percona-xtrabackup
Obtener las credenciales de un usuario MySQL existente o crear un usuario específicamente para la copia de seguridad
Todas las operaciones deben realizarse como un usuario con derechos de root, o usando sudo.
A continuación veremos con más detalle los pasos que debe seguir.
Creación de un usuario
Como ejemplo crearemos el usuario llamado bkpuser con los derechos mínimos suficientes para crear una copia de seguridad completa y la contraseña s3cret.
Primero debe acceder a la consola de MySQL con derechos administrativos, por ejemplo:
mysql -uroot -pLuego, en la consola de MySQL, introduzca los comandos específicos para las distintas versiones de MySQL:
MySQL 5.xx
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
CREATE USER 'bkpuser'@'%' IDENTIFIED BY 's3cret';
GRANT SELECT, RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT SELECT, RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkpuser'@'%';
FLUSH PRIVILEGES;MySQL 8.xx
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
CREATE USER 'bkpuser'@'%' IDENTIFIED BY 's3cret';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'%';
GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'%';
GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost';
GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'%';
FLUSH PRIVILEGES;Volumen de copia de seguridad
Ahora necesitamos calcular el tamaño del volumen adicional al que se realizará la copia de seguridad.
Para determinar el tamaño del volumen requerido para la copia de seguridad de la base de datos, debe encontrar el tamaño de su base de datos actual y multiplicarlo por 1,5.
Si su base de datos está en la ubicación predeterminada que se establece al instalar el servidor MySQL, debe ejecutar el siguiente comando con derechos de root:
du -sh /var/lib/mysqlSi tiene una ubicación personalizada de la base de datos, debe especificar la ruta de la base de datos como argumento del comando du, es decir:
du -sh /your_path_to_databaseEjemplo de cálculo

En la captura de pantalla podemos ver que el tamaño actual de la base de datos MySQL es de 181 GB. Por lo tanto, el tamaño del volumen para respaldar esta base de datos debe ser al menos 181 * 1.5 = 271,5 GB, redondeado hacia arriba a 272 GB
El cálculo se aplica a una sola copia de la base de datos. Si planea conservar más de una copia de seguridad de la base de datos, recuerde multiplicar el resultado por el número de copias almacenadas.
Software para copia de seguridad
Después de conectar el nuevo volumen y crear un sistema de archivos en él, debe instalar el software necesario para la copia de seguridad de la base de datos. Este software se llama https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html. Considere instalarlo usando paquetes de instalación listos disponibles en los repositorios de Percona XtraBackup.
La instalación se realiza mediante el paquete que contiene la percona-release utilidad de configuración.
Primero, descargue este paquete desde los repositorios de Percona XtraBackup con el siguiente comando:
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.debEl siguiente paso es ejecutar la instalación del paquete descargado usando la utilidad dpkg. Debe ser root o usar sudo para ejecutar este comando:
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.debAhora configure los repositorios necesarios para el propósito:
percona-release enable-only tools
apt-get updateExcepción para Debian 10
En Debian 10 el paso anterior devuelve un error:

Para corregir este error, debe editar el archivo /etc/apt/sources.list
Abra este archivo en cualquier editor de texto, por ejemplo:
root@debian10:~# nano /etc/apt/sources.listAgregue la siguiente línea a la lista en la parte superior:
deb http://ftp.de.debian.org/debian buster-backports mainEl contenido del archivo se verá algo así:
#
# deb cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 NETINST 20200509-10:25]/ buster main
# deb cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 NETINST 20200509-10:25]/ buster main
deb http://ftp.de.debian.org/debian buster-backports main
deb http://mirror.corbina.net/debian/ buster main
deb-src http://mirror.corbina.net/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
# buster-updates, anteriormente conocido como 'volatile'
deb http://mirror.corbina.net/debian/ buster-updates main
deb-src http://mirror.corbina.net/debian/ buster-updates main
# Este sistema se instaló usando medios extraíbles pequeños
# (p. ej. netinst, live o CD individual). Las entradas "deb cdrom"
# coincidentes se deshabilitaron al final del proceso de instalación.
# Para obtener información sobre cómo configurar las fuentes de paquetes apt,
# consulte el manual sources.list(5).Guarde los cambios en el archivo y luego ejecute los siguientes comandos:
apt update
apt install curl/buster-backports
apt --fix-broken install
percona-release enable-only tools
apt-get updateAhora está listo para instalar la utilidad de copia de seguridad. Para ello, utilice el siguiente comando como root o sudo:
para la versión de MySQL 5.xx:
sudo apt install percona-xtrabackup-24para versiones de MySQL 8.xx menores o iguales a 8.0.29:
sudo apt install percona-xtrabackup-80Con esto se completa el procedimiento de instalación de la utilidad Percona XtraBackup.
Creación de la copia de seguridad
Ahora creará una copia de seguridad completa de la base de datos usando Percona XtraBackup.
el comando de copia de seguridad se ejecuta en el mismo servidor donde se almacena la base de datos copiada
en el ejemplo siguiente el volumen adicional de copia de seguridad está montado en
/mnt/backupscarpetase utiliza un usuario pre-creado
bkpusercon una contraseñas3cretpara conectarse a la base de datos
xtrabackup --user=bkpuser --password=s3cret --backup --target-dir=/mnt/backups/Después de completar la copia de seguridad, debe preparar la base de datos copiada para su uso. Sin esta operación, la base de datos no será operativa.
xtrabackup --prepare --target-dir=/mnt/backups/Ahora tiene una copia de la base de datos que está actualizada en el momento de su creación, creada sin detener el servidor y sin aliviar la carga sobre él.
Esta copia de seguridad puede utilizarse para restaurar su base de datos en caso de emergencia.
Última actualización
¿Te fue útil?