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

Insertar datos desde BackUp. ¿Cómo?

Estas en el tema de Insertar datos desde BackUp. ¿Cómo? en el foro de Mysql en Foros del Web. Buenas gente. Mi consulta es la siguiente. Tengo 2 bases de datos. 1 con informacion completa acerca de ventas y demas cosas de una empresa ...
  #1 (permalink)  
Antiguo 02/03/2008, 02:15
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Insertar datos desde BackUp. ¿Cómo?

Buenas gente. Mi consulta es la siguiente.

Tengo 2 bases de datos. 1 con informacion completa acerca de ventas y demas cosas de una empresa con varias sucursales, y la otra con la informacion de lo antes mencionado, pero solamente de 1 sucursal.

Yo necesito que a cierta hora, se genere un backup (por decirlo asi, podria ser otro metodo) y que se envien dichos datos via internet a la sucursal central en donde reside la primer base de datos.

Ahora el problema.

¿Cual sería la mejor manera de hacer esto? Es decir, generar algo, y acoplarlo a otra base de datos sin sobreescribir información existente?

Gracias
  #2 (permalink)  
Antiguo 02/03/2008, 08:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Insertar datos desde BackUp. ¿Cómo?

La base de datos central debería poder ingresar la información ed la sucursal simplemente almacenándola. Esto puede producir problemas si y sólo si las tablas a almacenar no tienen en cuenta que los ID de Clientes, Facturas, Caja, Cobranzas, Envíos, Remitos, Recibos, y el resto de las posibles tablas, deben poder identificarse como relacionadas a la sucursal y no a la empresa. La relación de los ID con la empresa se debería manejar en tablas terciarias que vinculen la info centralizada con cada sucursal.
A veces esto sucede cuando la base de la sucursal y la de la central son simples copias que comparten la misma estructura de diseño y de tablas. En ese caso el problema está en que el diseño de datos no fue preparado para soportar ese esquema de trabajo y la solución pasa por generar una aplicación que compense la situación. Me ha sucedido.
Si está preparado para un diseño de sucursales, entonces la suma de registros no debería generar situaciones de inconsistencia de datos. Lo único que debería hacerse es la verificación de los clientes, que debería manejarse con una tabla ternaria.
En el caso de que el volcado de datos a la central incluya la limpieza de los registros, solamente deberías recordar que truncar las tablas con ID autonumérico los inicializa a 0 en las InnoBD y mantiene el último Id en las MyISAM.

En cualquier caso la solución más rápida es generar un paquete con los datos y enviarlo a la central para que lo procesen. Que la solución de compensación la hagan en la central.
La otra opción, generar un enlace a la base y actualizar directamente, si bien puede ser buena idea, también puede generar más inseguridad en la transferencia (sobre todo si usas TCP/IP) y aumento del tiempo de procesamiento.
  #3 (permalink)  
Antiguo 02/03/2008, 13:07
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Re: Insertar datos desde BackUp. ¿Cómo?

OK, entiendo! De manera que si el diseño esta bien planteado, no tendria porque generar inconsistencias.

Pero ahora bien. Como llevo a cabo el paso de los datos? Porque entiendo que si genero un backup, al restaurarlo, se debe hacer en una base de datos vacia. NO?

La verdad que no probe si es que restaurando en una base de datos existentes, se acoplarian las tablas que este no posee.

Otra opcion que pense (pero no se como implementarlo), seria generar un archivo SQL con todos los movimientos hechos en el dia, y luego agregarlo mediante el SQL Query.
  #4 (permalink)  
Antiguo 02/03/2008, 15:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Insertar datos desde BackUp. ¿Cómo?

Generar un archivo de transacciones no es una mala idea, aunque eso podría hacer que se incluyesen operaciones que han sido deshechas, o transacciones de confirmación y validación que engrosarían el archivo inutilmente. Aún así, puede ser útil, pero en ese caso es preferible , sobre todo si trabajas en PHP, utilizar los propios recursos del phpAdministrator, el cual, si mal no recuerdo, cuenta con una opción que permite generar un script que contenga solamente los inserts, con la ventaja que ese script respeta la integridad referencial y la consistencia de los datos.

Por otro lado, es posible usar el mysqldump para generar un archivo de esas características.

Otra opción, que he usado, es utilizar el SELECT * FROM tabla INTO OUTFILE archivo para descargar archivos de texto plano que después se pueden cargar con una secuencia de LOAD DATA INFILE. El problema es que hay que crear una rutina fina de carga para mantener la integridad referencial y la consistencia de datos en el server central.

Hay también algunas aplicaciones en el mercado, bastante accesibles, que ya implementan este tipo de transacciones y mantenimiento de backups.

Por otro lado, yo se sugeriría que estudies la posibilidad de implementar la cosa a través de bases de datos distribuidas (p.e. MySQL Cluster), que tal vez pudieran resolver el problema, sobre todo si el enlace es 7x24x365.

Última edición por gnzsoloyo; 02/03/2008 a las 15:22
  #5 (permalink)  
Antiguo 02/03/2008, 17:17
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Re: Insertar datos desde BackUp. ¿Cómo?

EL tema es el siguiente, como dije, la actualizacion se hace todos los dias, pero a cierta hora del dia, y no durante mucho tiempo, maximo 1 hora.

Ahora, me intereso lo del script del phpAdministrator. Me podrias facilitar un poco mas de información acerca de eso?
  #6 (permalink)  
Antiguo 03/03/2008, 04:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Insertar datos desde BackUp. ¿Cómo?

phpMyAdministrator es un proyecto Open Source, que sin duda has visto o usado alguna vez, y que viene con el WAMP server. tiene una interfase que funciona con IE, y que permite generar y administrar bases de datos completamente. Una de las funcionalidades es precisamente la de hacer backups de bases, datos o ambos, por medio de scripts.

HomePage de phpMyAdministrator

Cómo realizar un backup con phpMyAdministrator
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 06:33.