En el proceso de crear un respaldo automático para una base de datos me di a la tarea de investigar un poco más acerca del componente mysqldump, con el fin de encontrar  la manera más óptima de realizar el backup, he aquí algunos apuntes para tener en cuenta.

Lo primero que se debe saber es que con mysqldump podemos generar un backup tanto de una base de datos, como de todas las bases de datos o simplemente de una tabla, por tanto lo primero que debemos tener claro es que opciones usar en relación al backup que pretendemos generar, por consiguiente:

 

  1. Para respaldar una o varias tablas de una base de datos especifica usamos el siguiente comando, si no se especifican tablas el backup se realizara a la base de datos completa.
    # mysqldump [opciones] nombre_de_base_de_datos [tablas]
  2. Para respaldar una o mas bases de datso completas usamos:
    # mysqldump [opciones] --databases DB1 [DB2 DB3...]
  3. Para respaldar todas las bases de datos usamos:
    # mysqldump [opciones] --all-databases

 

En todos los casos debemos definir el nombre del archivo de respaldo y su ubicación, para lo cual hay dos formas las cuales se describen a continuación:

 

  1. La de uso más común, el comando de escritura de archivos de la consola (>), con el cual el resultado de la ejecución se volcara sobre el archivo que se defina, la sintaxis básica seria:
    #mysqldump [opciones] nombre_de_base_de_datos [tablas] > respaldo.sql
    #mysqldump [opciones] --databases DB1 [DB2 DB3...] > respaldo.sql
    #mysqldump [opciones] --all-databases > respaldo.sql
  2. La manera más recomendada de usar sobre todo en sistemas operativos Windows es definir en las opciones del comando el archivo donde se respaldaran los datos, para lo cual se usa la opción –result-file o de manera reducida –r, en esta opción se define el archivo donde se almacenara el resultado de la ejecución del comando, la sintaxis de la opción es la siguiente:
    --result-file=”respaldo.sql”–r “respaldo.sql”

 

A continuación se encuentra un resumen de las principales opciones al momento de realizar un respaldo de una base de datos:

 

Opción

Reducido

Descripción

–add-drop-database Añade la sentencia ‘DROP DATABASE’ antes de ‘CREATE DATABASE’
–add-drop-table Añade la sentencia ‘DROP TABLE’ antes de ‘CREATE TABLE’
–comments

-i

Opción por defecto. Añade comentarios en el archivo de respaldo.
–skip-comments Desactiva los comentarios en el archivo de respaldo.
–compatible=nombre Genera una salida compatible con otros sistemas de bases de datos o versiones antiguas de MySQL. Puede tomar valores como: ansi, mysql323, mysql40, postgresql, mssql, oracle, db2, maxdb.
–complete-insert

-c

Usa sentencias INSERT que incluyen los nombres de las columnas.
–extended-insert

-e

Usa la sentencia ‘INSERT’ con el formato de múltiples registros con varias listas de ‘VALUES’.
–host=nom

-h nom

Se realiza el respaldo de el servidor MySQL indicado. Si no se especifica elvalor por defecto es localhost.
–ignore-table=bd.tabla Si no se desea respaldar una tabla en específico se utiliza esta opción. Si se desean ignorar varias tablas se usa esta opción múltiples veces.
–no-create-db

-n

Esta opción suprime las sentencias “CREATE DATABASE” que estan definidas por defecto.
–no-data

-d

Respalda unicamente el esquema de las bases de datos.
–opt Opción por defecto. Es una abreviatura de las siguientes opciones: –add-drop-table, –add-locks, –create-options, –disable-keys, –extended-insert, –lock-tables, –quick, –set-charset. Produce un volcado mucho mas rapido.
–password[=pass]

-p[pass]

Contraseña para conectarse al servidor indicado en la opción –host. Si no se indica la contraseña, después de presionar la tecla intro se preguntará por esta.
–port=num

-P num

Indica el puerto usado por el servidor, por defecto 3306.
–skip-quote-names Desactiva la opcion por defecto –quote-names.
–quote-names

-Q

Opción por defecto. Pone los nombres de base de datos, tablas, columnas entre caracteres “`”.
–skip-opt Desactiva la opción por defecto –opt.
–triggers Opcion por defecto. Incluye triggers creados en el respaldo.
–skip-triggers Desactiva la opcion por defecto –triggers.
–user=nombre

-u nom

El nombre de usuario de MySQL para conectarse al servidor.
–xml

-X

En vez de un respaldo por defecto formateado con sentencias SQL, esta opción ofrece una salida en un formato XML bien formado.

Ya con esto podemos generar un respaldo de nuestra base de datos.