
12/09/2009, 21:09
|
| | Fecha de Ingreso: abril-2003 Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años, 10 meses Puntos: 0 | |
Respuesta: MySQL backup y restore Veo que hubo poco foro para mi pregunta, por lo que me autorespondo con la respuesta que obtuve de otro sitio, en caso de que a alguien más le sirva a futuro... Cita: mysqldump saca todo a una estructura SQL, que después te permite recargar
sin problemas. Y si, mantiene adecuadamente los campos autonuméricos...
Lo puedes usar con línea de comando, o desde interfaces como el
phpMyAdmin. Si lo usas como línea de comandos tienes las siguientes
opciones (solo las más importantes, tiene más):
--add-locks
añadir bloqueo de tablas (para evitar que la actualización interfiera con
la restauración)
--add-drop-table
(agrega instrucción SQL para eliminar la tabla antes del create
-A, --all-databases
Aplica a todas las bases de datos (util pa'l administrador)
-a, --all
Incluye todas las opciones de creación específicas de Mysql.
-c, --complete-insert
(debiera ser innecesario en un backup para seguridad, pero a los
administradores les gusta, coloca los nombres de los campos en el insert,
en vez de asumir cuales son y el orden que tienen)
-B, --databases
Para especificar varias bases de datos.
-e, --extended-insert
insert multi línea (muy necesario, pues ahorra mucho espacio, sobre todo
con -c )
-F, --flush-logs
Escribe en disco todos los logs antes de comenzar con la copia
-f, --force,
Continúa aunque se produzca un error de SQL durante la copia.
-l, --lock-tables.
Bloquea las tablas de la base de datos, de manera que las actualizaciones
no alteren el contenido de lo que se está respaldando...
-K, --disable-keys
Se inluirá en la salida /*!40000 ALTER TABLE tb_name DISABLE KEYS */; y /
*!40000 ALTER TABLE tb_name ENABLE KEYS */; Esto hará que carga de datos
en un servidor MySQL 4.0 se realice más rápido debido a que los índices
se crearán después de que todos los datos hayan sido restaurados.
-n, --no-create-db
No se incluirá en la salida CREATE DATABASE /*!32312 IF NOT EXISTS*/
db_name; Esta línea se incluye si la opción --databases o --all-databases
fue seleccionada.
--opt
Lo mismo que --quick --add-drop-table --add-locks --extended-insert --
lock-tables. Esta opción le debería permitir realizar la copia de
seguridad de la base de datos de la forma más rápida y efectiva.
-p[clave], --password[=clave]
Contraseña utilizada cuando se conecta con el servidor. Si no se coloca,
[clave], mysqldump preguntará la contraseña.
-P, --port=...
Solo si es necesario: Puerto utilizado para las conexiones TCP/IP
--protocol=(TCP | SOCKET | PIPE | MEMORY)
Sólo si es necesario: Especifica el protocolo de conexión que se
utilizará.
-q, --quick
No almacena en el buffer la sentencia, la copia directamente a la salida.
Utiliza mysql_use_result() para realizarlo.
-Q, --quote-names
Entrecomilla las tablas y nombres de columna con los caracteres ``'.
-r, --result-file=...
Redirige la salida a un archivo (puede ser útil cuando se construyen
programas que generan respaldos automáticos).
-S /path/to/socket, --socket=/path/to/socket
Sólo si es neceasrio, el fichero de sockets que se especifica al conectar
al localhost (que es el host predeterminado).
--tables
Define que tablas quieres respaldar (útil cuando tienes tablas
transaccionales de mucha carga, y quieres hacerle el respaldo sólo a
ellas)
-u nombre_usuario, --user=nombre_usuario
El nombre de usuario que se utilizará cuando se conecte con el servidor,
el valor predeterminado es el del usuario actual.
-w, --where='cláusula where'
Sirve para realizar la copia de determinados registros
Ejemplos de comandos mysqldump:
Ejemplo típico de comando mysqldump para hacer el backup de una base de
datos es el siguiente:
mysqldump --opt --user=miuser -p mibasededatos > archivo.sql
Usa las opciones por defecto para crear el respaldo de "mibasededatos" en
"archivo.sql" utilizando "miuser" (usuario de MySQL) y pidiendo la clave
por pantalla...
Y para recuperarla:
mysql --user=miuser -p mibasededatos < archivo.sql
La recupera completamente...
__________________ ~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar? |