GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo programar una copia de seguridad de la base de datos MySQL en Ubuntu

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.


Linux
  1. Cómo copiar una base de datos MySQL

  2. MySQL:cómo hacer una copia de seguridad (volcar) y restaurar una base de datos usando mysqldump

  3. Cómo crear una copia de seguridad de bases de datos MySQL usando mysqldump en Ubuntu 20.04

  4. Cómo instalar la base de datos MySQL en Ubuntu 20.04

  5. Duplicar toda la base de datos MySQL

Cómo restaurar una base de datos MySQL desde .SQL Backup

Cómo crear una base de datos en MySQL

Cómo hacer una copia de seguridad de una base de datos MySQL en cPanel

Cómo instalar MySQL 8.0 en Ubuntu 18.04

Cómo instalar phpMyAdmin en Ubuntu 18.04

Cómo programar copias de seguridad de archivos en Google Drive en Ubuntu