Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: vermillion66 en 11 Abril 2010, 09:12 am



Título: BACKUP DE MYSQL EN VISUAL FOXPRO
Publicado por: vermillion66 en 11 Abril 2010, 09:12 am
Hola amigos, buenas!

Les cuento: Estoy realizando un proyecto en FoxPro, y estoy usando MYSQL como base de datos; la cuestion es que no se como hacer un backup del mismo. Me gustaria saber como hacer el respaldo y las diferentes extensiones que puedan generarse, como por ejemplo .frm, .MYD. .sql (.sql es la que mas me gustaria saber). Tambien como restaurar una base de datos desde estos archivos generados.

Estuve buscando, me descargue un programa para utilizar el sqldump pero no entendi mucho. Espero que puedan ayudarme, no tengo experiencia haciendo modulos de backup.

De antemano muchas gracias, saludos! Espero que puedan ayudarme.

P.D.: Si tienen un tuto me lo pasan, por fa!


Título: Re: BACKUP DE MYSQL EN VISUAL FOXPRO
Publicado por: ^Tifa^ en 11 Abril 2010, 18:54 pm
Algo que debes saber... hay 2 tipos de Backups en las bases de datos relacionales (aplicable en este tema a MySQL tambien). Esta el Backup logico y el Backup fisico.

El Backup logico puede realizarse en 'caliente' (Seguro habras escuchado la frase hot backup) sino lo haz escuchado, te dire que significa, significa que se hara un backup de X esquema o todos los esquemas de una base de datos sin detener o apagar el motor. Al finalizar el backup, lo que tienes es un archivito en texto plano con todas las tablas, registros, vistas, etc, etc.. pero son la estructura de todas estas, listas en un archivo de texto de crearlas en una DB.

El Backup fisico, generalmente se realiza en 'frio' (Cold Backup si lo haz escuchado) A pesar que por regla debe hacerse en 'frio' (En frio quiere decir apagar o detener el motor) MySQL facilita la herramienta mysqlhotcopy que es un script hecho en Perl, para hacer backup de tablas, esquemas, etc en 'Caliente sin apagar el motor', las tablas deben estar obligatoriamente en MyIsam. El resultado final de esto es, que tendras fisicamente la carpeta de la DB junto a todos los datafiles y indices dentro.

Si tu tabla no tiene tablas que ocupan mas de 50GB yo te recomendaria dumpear los datos mejor (backup logico) con mysqldump. Para hacer un backup logico basico podrias:

mysqldump  --opt  --password='contraseña'  --user='USUARIO'    TU_DB  > archivo.sql[/n]

El archivo.sql se creara justamente en el mismo directorio donde se ejecute el comando anterior. Si en 'cmd'  estas en C:\  y ejecutas lo anterior pues.. se creara en C:\

Aca tiene referencias que te pueden ayudar:

mysqlhotcopy

http://dev.mysql.com/doc/refman/5.0/es/mysqlhotcopy.html

mysqldump
http://dev.mysql.com/doc/refman/5.0/es/mysqldump.html

Para recuperar un backup logico (dumpeo archivo.sql) te basta abrir una terminal 'cmd' acceder a mysql y cuando estes dentro del mismo hacer:

mysql>  source  C:\archivo.sql

Hay otras formas claro esta, solo te expuse una. En el caso de restaurar un backup fisico debes apagar el motor o lockear todas las tablas en su lugar, y copiar la carpeta completa del backup en la carpeta principal de datos de MySQL (sustituyendo cualquier carpeta alli con el mismo nombre del esquema).