Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

MySQL backup y restore

Estas en el tema de MySQL backup y restore en el foro de Mysql en Foros del Web. Saludos! Estoy desarrollando un pequeño sitio en PHP y MySQL para una entidad sin fines de lucro, donde hacen un registro de sus socios y ...
  #1 (permalink)  
Antiguo 11/09/2009, 08:57
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años
Puntos: 0
Busqueda MySQL backup y restore

Saludos!

Estoy desarrollando un pequeño sitio en PHP y MySQL para una entidad sin fines de lucro, donde hacen un registro de sus socios y requieren un par de encuestas.

El caso es que se me presentó un problema el otro día, ya que hackearon el servidor donde está hosteado, y arrasaron con el sitio, y con la base de datos. Extrañamente lograron eliminar la tabla de usuarios (de nombre LOGIN), con lo que asumí que era un nombre muy genérico para la tabla, por lo que decidí cambiarlo.

Mi pregunta va más por el lado de los respaldos. Uso campos con auto_numeric para hacer más fácil la clave única, y uso campos internos para relacionar mis datos, pero quisiera saber, cómo es el procedimiento para respaldar y restaurar tablas con campos autonuméricos? es decir, la idea es que si vuelve a pasar lo del hack del sitio, yo pueda restaurar los datos de forma rápida, y sin perder las pocas relaciones que tengo con esos campos. Alguien podría sugerirme algun tutorial al respecto?

Gracias,
__________________
~[ 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?
  #2 (permalink)  
Antiguo 12/09/2009, 21:09
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años
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?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:16.