rescatar mysql

Iniciado por OssoH, 8 Diciembre 2009, 18:31 PM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

mi ordenador donde tenia el xampp instalado (mysql + php ) se ha roto. Solo he podido rescatar el directorio completo del xammp.
¿puedo copiarlo ese mismo directorio en otro pc distinto y recuperaré las base de datos automáticamente?
gracias.

^Tifa^

Depende.

No lo he hecho con Xampp o MySQL como tal, pero si he hecho algo similar con Oracle.

Si en el momento donde se danio el PC no se estaba realizando ningun tipo de transaccion en el motor MySQL, es bastante probable que te baste con copiar el directorio completo a otro PC y todo ira bien. Si se estaba haciendo una transaccion en dicho momento puede que se haya roto algo, pero eso tendrias que confirmarlo antes porque influye que motor de almacenamiento se estaba utilizando entre otras cosas.


OssoH

Lo acabo de hacer con mysql y es curioso porque unas si las deja tal cual y en otras me faltan tablas. Algo rarísimo.
¿Como automatizais las copias de seguridad de MYSQL?
Yo lo hago de vez en cuando entrando en el phpadmin y exportando cada una de las BD que tengo, pero esto es un engorro y me gustaría algo más automático.
Gracias.

^Tifa^

SI dices que te faltan tablas es porque no se guardo del todo la data he indices correspondiente a esas tablas que se 'perdieron' (Al referirme a data he indices me refiero al archivo fisico que guarda esta informacion). Este efecto pudo haber sucedido cuando se rompio el servidor donde estaba xamp, se quedaron datos en el buffer que no llegaron a escribirse a disco fisicamente.. pero para darse esta eventualidad deberia haber estado, el estado autocommit en valor cero o desabilitado... sea cual sea la razon, este tipo de cosas suceden en falla de hardware y puedes perder datos por causa de ello.

Sobre backups automaticos, puedes crear un batch (Si estas en Windows) o un script bash (Si estas en Linux) y guardarlo en tareas programadas con una hora y un dia para realizar el backup. Puedes hacer un dumpeo con mysqldump (Mas o menos asi::)

mysqldump --opt  --user = tu_usuario  --password = contraseña  --all-databases > /directorio/backup.sql

Si eliges --all-databases se hara un backup de todos los esquemas disponibles donde el usuario especificado tenga permisos de lectura y lectura/escritura, sino quieres hacer esto y solo quieres hacer backup de 1 esquema (una base de datos y todas sus tablas) entonces en vez de --all-databases colocas el nombre del esquema en su lugar.

Mysqldump lo que hace es hacerte un archivo fisico de todas las estructura logica de las tablas que tengas creadas en dicho esquema o DB. Si quieres hacer algo mas solido (Copiar carpetas y archivos fisicos ) deberias dar uso de mysqlhotcopy (pero solo funciona en tablas con motor myisam y archive) y puede ser que tengas o uses en un futuro un motor transaccional.