Saltar al contenido

¿Cómo usar mysqldump para respaldar MySQL?

¿Qué es mysqldump?

mysqldump es un utilidad de línea de comandos que crea un copia de seguridad lógica una base de datos MySQL. Genera declaraciones SQL que se pueden usar para recrear objetos y datos de la base de datos. El comando también puede generar resultados en formato XML, texto delimitado o CSV.

Esta herramienta solo se puede usar cuando el proceso de su base de datos está accesible y en ejecución. Si por alguna razón su base de datos es inaccesible, puede crear una copia de seguridad físicaque es una copia de la estructura del sistema de archivos que contiene sus datos.

Este comando es fácil de usar, pero hay un problema que ocurre al restaurar la base de datos. Cuando realiza una copia de seguridad de una base de datos MySQL, se crea un archivo de copia de seguridad que contiene los comandos SQL necesarios para reconstruir o restaurar la base de datos. Cuando restaura la base de datos, el comando ahora ejecuta todas las instrucciones SQL que se usaron para crear tablas e insertar datos. Si tiene una base de datos grande, el proceso de recuperación puede llevar mucho tiempo.

¿Qué son los requerimientos?

  • Para ejecutar la copia de seguridad, necesita un servidor MySQL que funcione y un usuario de la base de datos.
  • Necesita privilegios de root o una cuenta de usuario con “sudo” derechos de acceso al sistema.

¿Cómo se hace una copia de seguridad de una base de datos?

los Sintaxis general de mysqldump El comando se da a continuación:

  • mysqldumpu [user name]PAGS [password] [options] [database_name] [tablename] > [dumpfilename.sql]
  • mysqldumpu [username]PAGS [databaseName] > [filename]-$(fecha +%F).sql

Los diversos parámetros incluidos en el mysqldump utilidad son las siguientes:

  • -tu [user_name]: Es un nombre de usuario que se utiliza para conectarse al servidor MySQL para crear la copia de seguridad con la utilidad mysqldump.
  • -PAGS [password]: Es la contraseña válida del usuario de MySQL.
  • [option]: Es la opción de configuración que te permite personalizar la copia de seguridad.
  • [database name]: Este es el nombre de la base de datos que se va a respaldar.
  • [table name]: Este es un parámetro opcional. Si desea realizar una copia de seguridad de tablas específicas, puede especificar los nombres en el comando.
  • “<“ ODER „>“: Este signo indica si está creando una copia de seguridad o restaurando una base de datos. Puede crear la copia de seguridad con “>” y restaurarla con “<".
  • [dumpfilename.sql]: Ruta y nombre del archivo de copia de seguridad.

La descripción de los diversos atributos en el mysqldump La sintaxis es la siguiente:

  • Antes de iniciar el proceso de copia de seguridad, mysqldump solicita una contraseña.
  • Según el tamaño de la base de datos, el proceso de copia de seguridad llevará algún tiempo.
  • La base de datos de respaldo se crea en el directorio donde se ejecuta el comando.
  • La expresión$(fecha + %F) agrega una marca de tiempo al nombre del archivo.
  • Creación de una copia de seguridad de un sistema de administración de base de datos completo (DBMS):

mysqldumpall-databasessingle-transactionquicklock-tables=false > full-backup-$(date +%F).sqlu rootp

  • Copia de seguridad de una base de datos específica:

En el ejemplo que se muestra a continuación, puede reemplazar db_1 con el nombre de la base de datos que desea respaldar:

mysqldumpu [username]p db_1transacción únicaquicklock-tables=false > db_1-backup-$(fecha +%F).sql

  • Copia de seguridad de una sola tabla desde cualquier base de datos:

En el siguiente ejemplo la tabla tabla 1 se exporta desde la base de datos especificada db_1:

mysqldumpu [username]psingle-transactionquicklock-tables=false db_1 table1 > db_1-table1-$(fecha +%F).sql

los mysqldump Las opciones de comando utilizadas en los casos de uso anteriores son:

  • –Transacción única: Emite una instrucción BEGIN SQL antes de imprimir datos del servidor.
  • -rápido: Ayuda a volcar tablas fila por fila. Esto proporciona una capa adicional de seguridad para los sistemas con memoria limitada y/o bases de datos grandes, ya que el almacenamiento de tablas en la memoria podría resultar problemático.
  • –bloquear-tablas=falso: Ayuda a no bloquear las tablas para la sesión de copia de seguridad.

¿Cómo automatizar copias de seguridad con cron?

Se pueden agregar entradas para programar copias de seguridad de la base de datos de forma regular o periódica. /etc/crontab.

Los pasos para automatizar el proceso de copia de seguridad son los siguientes:

  • Paso 1: Cree un archivo que contenga las credenciales del usuario root de MySQL que realizará la copia de seguridad. Cabe señalar que el usuario del sistema en cuyo directorio de inicio se almacena este archivo no está necesariamente relacionado con un usuario de MySQL.

(Nombre de archivo: /home/example_user_206/.mylogin.cnf)

[client]

usuario = root

contraseña = Contraseña del usuario root de MySQL

  • Paso 2: Como se muestra a continuación, ahora puede restringir los permisos del archivo de credenciales.

chmod 600 /home/example_user_206/.mylogin.cnf

  • Paso 3: Ahora puede crear el archivo de trabajo cron.

A continuación se muestra un ejemplo que muestra el trabajo cron para hacer una copia de seguridad de todo el sistema de administración de la base de datos diariamente a las 2 am:

(Nombre de archivo: /etc/cron.daily_1/mysqldump)

0 2 * * * /user/bin/mysqldump –defaults-extra-file=/home/example_user_206/.my.cnfu root –single-transaction –quick –lock-tables=false –all-databases > full-backup$(fecha +%F).sql

¿Cómo restaurar una copia de seguridad?

Las copias de seguridad se pueden restaurar con el comando de restauración. los La sintaxis general del comando de restauración se proporciona a continuación:

mysql-u [username]PAGS [databaseName] < [filename].sql

Hay varios propósitos para usar el comando de restauración. Estos son:

  • Restaurar una copia de seguridad DBMS completa
  • Restaurar un solo volcado de base de datos
  • Restaurar una sola tabla
  • Restaurar una copia de seguridad DBMS completa

mysqlu rootp < copia de seguridad completa.sql

Como puede ver en el comando anterior, le pedirá la contraseña del usuario root de MySQL. Se sobrescribirán los datos actuales del sistema de base de datos MySQL.

  • Restaurar un solo volcado de base de datos

mysql-u [username]p db1 < db1-backup.sql

Los datos a importar deben tener previamente una base de datos de destino vacía o antigua, y el usuario de MySQL que ejecuta el comando debe decir “escribir” Acceso a esta base de datos.

mysqlu dbadminp db1 < db1-table1.sql

Para recibir los datos, debe tener una base de datos de destino preparada.

Conclusión

Esta publicación presenta las formas de usar mysqldump para respaldar MySQL en detalle. También ofrece una descripción general rápida del proceso de recuperación.

¿Te ha gustado post? Valóralo 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *