Realizar copias de seguridad regulares es un procedimiento esencial para cualquier tipo de datos. Este tutorial lo ayudará a conocer algunas de las herramientas más utilizadas para realizar copias de seguridad y restaurar su base de datos MySQL.
Primero, deberá conectarse a su servidor a través de una conexión SSH. Si aún no lo ha hecho, le recomendamos que siga nuestra guía para conectarse de forma segura con SSH. En caso de servidor local puedes ir al siguiente punto y abrir la terminal de tu servidor.
Usar mysqldump
Mysqldump es una aplicación siempre disponible en cada instalación de MySQL y le permite realizar un volcado completo de sus datos en formato de texto.
La sintaxis del comando es la siguiente:
$ mysqldump -u [username] -p [database] > backup.sql
Al ejecutar este comando, encontrará una copia de seguridad completa de la base de datos indicada en el archivo backup.sql.
Para restaurar la copia de seguridad, use el cliente MySQL de la siguiente manera:
$ mysql -u [username] -p [database] < backup.sql
Dependiendo del tamaño de la base de datos, estos archivos de respaldo pueden alcanzar tamaños significativos, lo que dificulta su transferencia o copia. Para optimizar el tamaño de la copia de seguridad de la base de datos, puede usar gzip para comprimir el archivo:
$ mysqldump -u [username] -p [database] | gzip > backup.sql.gz
Si lo desea, también puede agregar automáticamente la fecha actual en el nombre del archivo usando:
$ mysqldump -u [username] -p [database] | gzip > backup_$(date +%F.%H%M%S).sql.gz
Para restaurar, use la siguiente sintaxis:
$ mysql -u [username] -p [database] < backup.sql
Notas sobre mysqldump:
Es bueno tener en cuenta que durante el volcado y respaldo de una base de datos, mysqldump no garantiza la consistencia de datos entre tablas. Si se producen operaciones de escritura durante la copia de seguridad, la copia de seguridad obtenida puede ser parcial y/o corrupta.
Para evitar este problema, existen opciones específicas proporcionadas por la aplicación:
--lock-all-tables:bloquea todas las operaciones de escritura en todas las tablas de todas las bases de datos
- lock-tables:esta opción configura la tabla de la base de datos que se respalda en modo de solo lectura.
Las opciones a elegir dependen de si tiene datos relacionados con varias bases de datos o no. En la mayoría de los casos, --lock-tables es la solución ideal para garantizar la integridad de los datos para cada base de datos individual.
Automatizar mysqldump a través de crontab
Para que la copia de seguridad sea periódica, basta con agregarla al crontab del sistema mediante programación, por ejemplo, una vez al día. Primero, abre crontab iniciando:
$ sudo crontab -e
Ahora agregue una línea al final del archivo de la siguiente manera:
00 23 * * * mysqldump -u [username] -p [database] | gzip > /home/utente/backup.sql.gz
Al guardar el archivo, el sistema hará una copia de seguridad por día (a las 11:00 p. m.) dentro de su directorio de usuario, sobrescribiendo la copia de seguridad anterior todos los días.
Usar automysqlbackup
Además de usar mysqldump exportando copias de seguridad manualmente, puede confiar en una de las utilidades más populares de la industria:automysqlbackup.
Primero necesita instalar el paquete a través de apt-get:
$ sudo apt-get install automysqlbackup
Después de completar la instalación, automysqlbackup realizará copias de seguridad diarias en el directorio /var/lib/automysqlbackup. También puede iniciar manualmente una copia de seguridad iniciando:
$ sudo automysqlbackup
Una vez completado, puede verificar las copias de seguridad actuales simplemente listando el contenido del directorio:
$ ls -R /var/lib/automysqlbackup/
/var/lib/automysqlbackup/:
daily monthly weekly
/var/lib/automysqlbackup/daily:
exampledb information_schema performance_schema test wordpress
/var/lib/automysqlbackup/daily/exampledb:
exampledb_2019-08-03_06h48m.Sunday.sql.gz
...
Si todo funcionó correctamente, notará una serie de archivos con extensiones .sql.gz como se muestra arriba.
Te recomendamos revisar periódicamente las últimas copias de seguridad realizadas y verificar que todas funcionen correctamente.
Personalizar automysqlbackup
Para cambiar la frecuencia de respaldo de automysqlbackup o los datos de acceso necesarios para acceder a su base de datos, puede modificar el archivo de configuración en /etc/default/automysqlbackup.
Algunas de las configuraciones son:
NOMBRE DE USUARIO:nombre de usuario utilizado para iniciar sesión en la base de datos
CONTRASEÑA:contraseña de la base de datos
DBHOST:dirección IP o nombre de host
DBNAMES:nombres de las bases de datos a respaldar
BACKUPDIR:Directorio para guardar copias de seguridad
Después de cambiar la configuración deseada, guarde el archivo para aplicar los cambios.