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:
- 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.
[sourcecode language=»bash»]# mysqldump [opciones] nombre_de_base_de_datos [tablas][/sourcecode] - Para respaldar una o mas bases de datso completas usamos:[sourcecode language=»bash»]# mysqldump [opciones] –databases DB1 [DB2 DB3…][/sourcecode]
- Para respaldar todas las bases de datos usamos:[sourcecode language=»bash»]# mysqldump [opciones] –all-databases[/sourcecode]
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:
- 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:[sourcecode language=»bash»]#mysqldump [opciones] nombre_de_base_de_datos [tablas] > respaldo.sql[/sourcecode] [sourcecode language=»bash»]#mysqldump [opciones] –databases DB1 [DB2 DB3…] > respaldo.sql[/sourcecode] [sourcecode language=»bash»]#mysqldump [opciones] –all-databases > respaldo.sql[/sourcecode]
- 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:[sourcecode language=»bash»]–result-file=”respaldo.sql”–r “respaldo.sql”[/sourcecode]
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.
Siguenos en: