Mysqldump

El comando mysqldump permite realizar copias de seguridad (Backup) del gestor de base de datos MySql. Este comando permite realizar copias de seguridad a bases de datos completas o a algunas tablas en especial.

A continuación presentamos como realizar copias de seguridad desde la consola de Linux por medio de comando mysqldump

> mysqldump -u user -p DDBB TABLA > ARCHIVO

Cambiar:

user por el nombre del usuario
DDBB por la base de datos
TABLA por la tabla o tablas de las que se quiera tener un backup

Si se quiere generar un dump sin la base de datos el comando es:

mysqldump -u user -p –no-create-db nombre_bd > archivo.sql

Correr el archivo

> mysql -u usuario -p DDBB < ARCHIVO;

Cambiar:

usuario por el usuario que puede tener acceso a la base de datos
DDBB por la base de datos
ARCHIVO por el nombre del archivo.

La siguiente tabla muestra las opciones más comunes que pueden ser utilzadas con el comando mysqldump

 

Opción Corto Descripción
Añade la sentencia ‘DROP DATABASE’ antes de cada sentencia ‘CREATE DATABASE’
Añade la sentencia ‘DROP TABLE’ antes de cada sentencia ‘CREATE TABLE’
Respalda todas las tablas de todas las bases de datos.
Añade comentarios en el archivo de respaldo. Esta opción está por defecto activada, para desactivar los comentarios utiliza

.
Produce una salida más compatible con otros sistemas de bases de datos o versiones anteriores de MySQL. nombre puede tomar estos valores: ansi, mysql323, mysql40, postgresql, mssql, oracle, db2, maxdb.
Usa sentencias INSERT completas que incluyen nombres de columnas.
Incluye todas las opciones específicas de MySQL para la creación de tablas que se usan con la sentencia ‘CREATE TABLE’.
Permite respaldar una o más bases de datos. Después de la opción se indica(n) el(los) nombre(s) de la(s) base de datos a respaldar. Se respalda cada base de datos completa. En la salida se incluye con esta opción las sentencias ‘CREATE DATABASE’ y ‘USE’ antes de cada nueva base de datos.
Usa la sentencia ‘INSERT’ con el formato de múltiples registros con varias listas de ‘VALUES’. Esto produce una salida más reducida y acelera el proceso de INSERTS cuando el archivo es restaurado. Ideal para bases de datos con tablas que contienen miles de registros.
Si se tienen views o vistas en la base de datos a respaldar y la vista hace referencia a una tabla que ya no existe, el vaciado del respaldo terminará con un error sin completarse. Con esta opción se podrá continuar.
Se realiza el respaldo de el servidor MySQL indicado por nombre, puede ser una dirección IP o un nombre de servidor válido. Si no se especifica el default es localhost.
Si no se desea respaldar una tabla en específico se utiliza esta opción, es obligario indicar la base de datos un punto y después nombre de la tabla. Si son varias tablas las que se han de ignorar se usa esta opción múltiples veces. También puede usarse para ignorar vistas.
Si el respaldo viene de un servidor MySQL que actua como maestro en una esquema de replicación, el uso de esta opción es muy importante ya que incluira sentencias del tipo “CHANGE MASTER TO” que indican la posición en los archivos de bitácora binarios necesarios para que los servidores esclavos se sincronicen adecuadamente.
Esta opción suprime las sentencias “CREATE DATABASE” que por defecto se incluyen en el respaldo.
No escribe o respalda registro alguno solo el esquema de la base de datos.
Esta opción esta por defecto activada, produce un vaciado rápido y totalmente compatible con otros servidores MySQL. Es un alias que activa las opciones

,

,

, entre otras.
La contraseña para conectarse al servidor indicado en la opción

. Si usas la opción corta

no debe haber un espacio. Es posible no indicar la contraseña y después de presionar la tecla intro se preguntará por esta.
Si servidor indicado en la opción

utiliza un puerto diferente al default del servicio mysql (3306) debe de indicarse con esta opción.
Va de la mano con la opción

ya que aplica principalmente para tablas grandes y del tipo transaccional. Permite agilizar la escritura al archivo de respaldo al leer registro por registro sin mandarlo a un buffer previo.
Opción por defecto activada. Pone entre comilla grave “`” a los nombres de los objetos como base de datos, tablas, columnas. Es recomendable dejarla siempre para evitar problemas de compatibilidad, pero si se desea desactivar utiliza la opción
Incluye en el respaldo rutinas almacenadas (procedimientos y funciones). Con esta función se incluyen las sentencias “CREATE PROCEDURE” Y “CREATE FUNCTION” que permiten re-crear completamente procedimientos almacenados y funciones. Esta opción NO esta por defecto en mysqldump asi que es motivo de sorpresa para DBA’s nuevos enterarse que el respaldo en el que tanto confiaban no está completo al momento de necesitarlo, sino utilizaron esta opción.
Opción útil solo con tablas transaccionales como las del tipo InnoDB, ya que garantiza la integridad y la consistencia sin bloquear las tablas. Esto lo logra al emitir una sentencia “START TRANSACTION” antes de vaciar los datos al respaldo.
Desactiva la opción por defecto

, con lo que se tienen que indicar individualmente las opciones a las que

hace referencia.
Incluye triggers creados en el respaldo. Esta opción es automática, esta por defecto, sino se quiere utilizar el respaldo de triggers utiliza
El nombre de usuario de MySQL para conectarse al servidor indicado en la opción

.
Modo verboso. Imprime información de lo que está haciendo el respaldo, usa doble

para modo aun más verboso.
En vez de un respaldo por defecto formateado con sentencias SQL, esta opción ofrece una salida en un formato XML bien formado.

 

Es importante anotar que si se intenta restaurar la una base de datos con el comando mysqldump nos presenta problemas. El mensaje que podemos encontrar si al momento de restaurar utilizamos mysqldump y no mysql será como el siguiente:

— MySQL dump 10.11

— Host: localhost Database: dw*****
— ——————————————————
— Server version    5.0.xxxx

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE=’+00:00′ */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

— Dump completed on 2009-02-19 21:59:45

Recuerde, para restaurar una base de datos o correr un archivo generado con mysql debe ser del tipo:

> mysql -u usuario -p DDBB < ARCHIVO;

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Blog

Previous article

Paleta de colores