miércoles, 23 de diciembre de 2009

Respaldar BD en MySQL

La gran importancia de poder llevar a cabo un backup (copia de seguridad) de una base de datos; se ve reflejado cuando necesitamos trasladar una base de datos de un servidor a otro, o cuando necesitamos tener un respaldo de la informacion contenida en esta, todo esto sin tener que volver a construir, y reinsertar la informacion que ya contenida.

Una de las formas mas eficaz y segura es el uso del comando mysqldump que es provisto al instalar el Servidor de MySQL (localizado en la carpeta bin, de la ubicacion donde reside la instalacion MySQL Server).

Con el uso de este comando obtendremos todas las instrucciones sql necesarias para poder llevar a cabo la restauracion exitosa de la copia de seguridad de la Base(s) de Dato(s).

ejemplo: (debe ubicarse en la carpeta bin, donde reside la instalacion de MySQL Server en caso no tener configuradas correctamente las variables de entorno)

Creacion de copia de seguridad


mysqldump --opt --password=yesicaea --user=adminbd yesi > d:\respaldoyesi.sql

Donde se especifica usuario (user) y contraseña (password) para acceder a la base de datos en este caso "yesi", que sera volcado en el archivo d:\respaldoyesi.sql.

Nota: el caracter ">" indica que es volcado hacia copia (backup).

Restaurar Copia de Seguridad

mysqldump --opt --password=yesicaea --user=adminbd yesi < d:\respaldoyesi.sql

Donde se especifica usuario (user) y contraseña (password) para restaurar a la base de datos nombre "yesi", que sera volcado desde el archivo d:\respaldoyesi.sql.

Nota: el caracter "<" denota que es volcado desde copia (restaurar).


Ademas de las opciones antes descritas este comando provee las siguientes opciones:

--print-defaults Imprimir la lista de argumentos de programa y salir.

--no-defaults No leer las opciones por defecto de cualquier archivo de opciones.

--defaults-file=# Solo leer las opciones dadas por defecto desde el archivo #.

--defaults-extra-file=# Leer este archivo después de que los archivos globales se lean.

-A, --all Volcado de todas las bases de datos.

-databases Volcado de todas las bases de datos seleccionadas.

--add-drop-database Añade un 'DROP DATABASE' antes de cada create.

--add-drop-table Añade un 'drop table' antes de cada create.

--add-locks Añade un candado en cada instruccion insert.

--allow-keywords Permite la creación de nombres de columnas que son palabras clave.

--character-sets-dir=name Donde los conjuntos de caracteres son Directorio.

-i, --comments Escribir informacion adicional.

--compatible=name Cambiar el basurero para ser compatible con un modo determinado. Por Las
tablas por defecto se descargan en un formato optimizado paraMySQL. Los
modos admitidos son: ANSI, MYSQL323, MYSQL40, PostgreSQL, Oracle, MSSQL,
DB2, MaxDB, NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS. Se pueden
utilizar varios modos separados por comas. Nota: Se requiere servidor MySQL
versión 4.1.0 o superior. Esta opción se ignora con las versiones anteriores
del servidor.


--compact Genera la opcion menos prolijo (útil para la depuración). Desactiva
comentarios estructura y encabezado y pie de las construcciones. Permite
las opciones - skip-add-drop-table - no-set-nombres - skip-disable-keys - skip-add-locks.

-c, --complete-insert Uso completo de las instrucciones de insert.

-C, --compress Usar compresión en el protocolo cliente/servidor.

--create-options Incluir todas las específicaciones de MySQL en la creacion de opciones.

-B, --databases Para volcar varias bases de datos. Nótese la diferencia de uso;
En este caso no se dan las tablas. Todos los argumentos son nombres
considerados como nombre de bases de datos. 'USE db_name;' se
incluira en la salida.

-#, --debug[=#] Esta es una versión de depuración. La captura de esta y su salida.

--default-character-set=name Ajuste del conjunto de caracteres predeterminado.

--delayed-insert Inserta filas con INSERT DELAYED;

--delete-master-logs Elimina registros en el master despues del backup. Esto automaticamente
habilita --master-data.

-K, --disable-keys '/*!40000 ALTER TABLE tb_name DISABLE KEYS */; y
'/*!40000 ALTER TABLE tb_name ENABLE KEYS */; se pondra
en la salida.

-e, --extended-insert Permite la utilización de la nueva sintaxis de un INSERT mucho más rápido.

--fields-terminated-by=name Campos en el archivo de texto se pone fin mediante ...

--fields-enclosed-by=name Los campos del archivo importado están limitado por ...

--fields-optionally-enclosed-by=name Los campos de la impotacion de archivos son opcionales delimitados por ...

--fields-escaped-by=name Los campos del archivo importado son evadidos por ...

-F, --flush-logs Limpia los registros de archivo en el servidor antes de iniciar el volcado. Tenga en
cuenta que si vuelca varias bases de datos a la vez (utilizando la opción de
--databases= o --all-databases), los registros se vuelcan para cada base de datos en
objetos de dumping. La excepción es cuando se usa - lock-all-tables o - master-data: en este caso
los registros se vuelcan sólo una vez, correspondiente a todas las tablas que al momento están
bloqueadas. Así que si quiere que el volcado y el limpiado de registro suceda al mismo tiempo,
usted debe usar - lock-all-tables o - master-data con - flush-logs.

-f, --force Continuar, incluso si se obtiene un error de SQL.

-?, --help Muestra mensaje de ayuda y sale.

--hex-blob Volcado de cadenas binarias (BINARY, VARBINARY, BLOB) en
formato hexadecimal.

-h, --host=name Conectar al host.

--ignore-table=name No volcar la tabla especificada. Para especificar más de una
tabla a ignorar, use la directiva múltiples veces, una vez
para cada tabla. Cada tabla debe ser especificado con ambos
(base de datos y nombres de tabla), ejemplo --ignore-table=database.table

--insert-ignore Insertar filas con INSERT IGNORE.

--lines-terminated-by=name Líneas en el archivo importado deben ser terminadas por ...

-x, --lock-all-tables Bloquea todas las tablas en todas las bases de datos. Esto se logra
mediante la adopción de un bloqueo de lectura global, para la duración de la
volcado de conjunto. Se activa automáticamente --single-transaction y
--lock-tables off.

-l, --lock-tables Bloqueo de todas las tabla para lectura.

--master-data[=#] Esto hace que la posición del log binario y el nombre que se
anexa a la salida. Si es igual a 1, se imprimirá como una
Comando CHANGE MASTER, si es igual a 2, que el comando
estar precedido de un símbolo de comentario. Esta opción se enciende
- lock-all-tables, a menos que - single-transaction sea
especificada también (en cuyo caso un bloqueo de lectura global es sólo
tomado durante un corto período de tiempo al inicio de la descarga - no
se olvide de leer acerca de - single-transaction abajo). En todos los
casos, cualquier acción en logs que sucederá en el momento exacto
de la dump. opcion se activa automáticamente - lock-tables off.

--max_allowed_packet=#
--net_buffer_length=#
--no-autocommit Envolver con tablas de intrucciones de confirmación automática / confirmacion.

-n, --no-create-db 'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;' cuando no se pueda insertar
en la salida. La linea anterior se agregara de lo contrario, if --databases o
--all-databases opciones dadas.}.

-t, --no-create-info No escribir información de la creación de la tabla.

-d, --no-data No informacion de fila.

--opt Same as --add-drop-table, --add-locks, --create-options,
--quick, --extended-insert, --lock-tables, --set-charset,
and --disable-keys. Enabled by default, disable with
--skip-opt.

--order-by-primary Ordena las filas de cada tabla de clave principal o primer llave unica,
si dicha clave existe. Útil cuando el volcado de una tablas MyISAM
para ser cargado en una tabla InnoDB, pero lo hará
el volcadero a fin de adaptarse por sí misma, tardando mucho más tiempo.

-p, --password[=name] Contraseña para usar cuando se conecta al servidor. Si la contraseña no
es dada se solicitado en el TTY.

-W, --pipe Uso de nombre de canalizaciones para conectarse al servidor.

-P, --port=# Numero de puerto usado para la conexion.

--protocol=name El protocolo de conexion (tcp,socket,pipe,memory).

-q, --quick No usar búfer de consulta, volcado directo a la salida estándar.

-Q, --quote-names Cotización de tabla y nombres de columna con comillas simples invertidas ( `).

-r, --result-file=name Salida directa a un archivo dado. Esta opción debe ser utilizada,
en MSDOS, porque previene que la nueva línea '\ n' de ser
convierte en '\ r \ n ( "retorno de carro + avance de línea).


-R, --routines Volcado de procedimientos almacenados (funciones y procedimientos).

--set-charset Agrega 'SET NAMES default_character_set' para la salida.
habilitado por el defaul; reprimir con --skip-set-charset.

- variable-name Cambiar el valor de una variable. Establecer las variables directamente con
- variable-name = valor.

--shared-memory-base-name=name Nombre base de memoria compartida.


--single-transaction Crea una imagen coherente de todas las tablas de volcadas en un
sola transacción. Funciona sólo para tablas almacenadas en
Los motores de almacenamiento que soportan multiversion (en la actualidad
InnoDB no sóla), el volcado consistente no se garantiza para motores de almacenamiento.
Opción se desactiva automáticamente - lock-tables.


--skip-opt Desabilita --opt. desactiva --add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, y --disable-keys.
-S, --socket=name Archivo de Socket usado para la conexion.

-T, --tab=name Crea archivo de texto separados por tabulaciones para cada tabla que da la
ruta. (crea. SQL y. txt). NOTA: Esto sólo funciona si mysqldump se ejecuta
en la misma máquina que el demonio mysqld.

--tables Opcion de remplazo --databases (-B).

--triggers Volcado de triggers de cada tabla volcada.

--tz-utc Ingresa TIME_ZONE='+00:00' en la parte superior del backp para permitir
el volcado de la TIMESTAMP cuando un servidor tiene datos en diferente tiempo,
las zonas o los datos se está moviendo entre los servidores con diferentes
zonas horarias.

-u, --user=name Usuario para entrar, si no es usuario actual.

-v, --verbose Imprimir información sobre las distintas etapas.

-V, --version Muestra informacion sobre la version.

-w, --where=name Volcado de los registros seleccionados; condicion obligatoria!!!!

-X, --xml Volcado de una BD en formato XML.


Arellano Bello Gilberto Jesus

Lic.informatica,Tecnologico de Zacatepec

0 comentarios:

Publicar un comentario