Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Replicar base datos mySQL (https://www.clubdelphi.com/foros/showthread.php?t=52677)

angara 28-01-2008 15:06:00

Replicar base datos mySQL
 
Hola

nesecito actualizar los datos en una base de datos mySQL explicación:

tengo un Pc con un programa administración punto venta con el servidor mySQL5 con una base datos llamada ventas y dos equipos llamese punto venta 1 y 2, con la misma base de datos y servidor mySQL5. Ahora lo que deseo hacer es que cuando en el punto venata 1 y/o se realize una venta esta se refleje en el equipo administración y a la vez si en el equipo administración se modifico un valor se refleje en los puntos de ventas. en el fondo se trata de realizar una especie de replicacion entre los tres equipos de manera que si uno falla por cortes de energia o la red el otro siga funcionando en local. demás esta decir que el equipo administración no esta en el mismo lugar físico que los punto de ventas. todo esto esta hecho en Delphi7 y componentes MiDAC. para la communiucion con mySQL.
gracias por los aportes que puedan realizar a este tema.

AzidRain 28-01-2008 16:23:19

De entrada creo que el diseño de todo esta incorrecto. Solo debes tener un servidor y una BD para dar servicio tanto a los puntos de venta como a la aplicación administrativa. De esta forma la información está siempre actualizada y visible por todos los equipos.

Como lo planteas no te da opción de nada porque si necesitaras por ejemplo otra terminal POS, tendrías que instalar sus propias bases de datos.

Por lo menos así te lo entendí, pero suponiendo que la base de datos "local" de cada POS solo sea como respaldo en caso de cortes la cosa cambia:

1.- MySQL solo incluye de momento replicación líneal, es decir, en un solo sentido: 1 servidor maestro y "n" servidores esclavos. Si modificas un esclavo el servidor no toma el cuenta el cambio, además de que se crea un desmother con los datos.

2.- Para casos de POS que requieren poder seguir por su cuenta en caso de caerse el servidor, te comento como funciona el esquema usado por IBM en sus POS, los cuales puedes ver funcionando en muchos de los grandes supermercados, te puede servir para un nuevo diseño:

[quote]
Tenemos 2 servidores principales: 1 maestro, que llamaremos CC y un esclavo que llamaremos DD. Cada terminal punto de venta arranca, se conecta y se registra con el servidor CC y empieza a trabajar. La terminal no tiene copia de base de datos ni nada, todo depende del servidor. Si CC deja de funcionar, DD toma el control y sigue trabajando la cosa. Esto último no puede hacerse con MySQL así que vamos a brincarnos esto y suponer que tampoco DD está disponible.

En este momento la terminal no tiene acceso al catálogo de artículos y por lo tanto a los precios. El enfoque de IBM es indicar esto en l display y permitir el registro de artículos sólo mediante la combinación "precio a departamento". Es decir, se debe indicar el precio del artículo y el departamento al que se dirige la venta. La transacción se guarda localmente en la terminal indicando además los UPCs de los artículos.
Al regresar el servidor, las terminales le envían sus transacciones almacenadas, ésto solo para efectos de que el servidor disminuya el inventario de los UPCs escaneados y que sume las ventas en $ a los departamentos indicados. En el reporte de cierre del negocio apareceran los importes que fueron cobrados "sin sistema".

Aquí lo importante es que en el caso de IBM es casi imposible que se llegue a ese extremo, pues hay UPS además de la redundancia de los servidores.
[quote]
Otro supuesto, tienes un servidor ubicado en otro local o ciudad, aunque de todas formas puedes montar el servidor via remota, puedes optar por montar un servidor intermedio que sí esté fisicamente en el mismo lugar que los POS y hacer una aplicación que se encargue de ir actualizando al servidor principal.

angara 29-01-2008 15:54:52

Gracias por tu detallado aporte.
Lo que mencionas referente a que los PV. trabajen conectados directamente al servidor es lo que tengo actualmente hecho y va bien, siempre y cuando no se producan cortes de energia, prolongados y que no se produca caida de la red por la ubicacion fisica del servidor. además que en este mismo servidor corre otra aplicación que tambien es utilisada por los PV. para emitir los tickes fiscales. y en ese caso esa aplicación si actualiza los datos bididercionalmente. debo destacar que esa corre con SQL y fue desarrollada en VB6 por otro desarrollador.
Yo solo trabajo en Delphi y lo de realizar esta usando mySQL es por la facilidad de poder efectuar via internet consultas sobre los movimientos y ventas en terreno. todo se almacena en el mismo servidor. de ahi la necesidad de replicar la información.

En alguna parte leei que se podia guardar la informacion en los clientes en un archivo de texto y luego un programa monitor ir leyendo y actualizando hacia el servidor y por ende desde el servidor hacia el cliente.
si sabes de algo parecido se te agredece desde ya.

AzidRain 29-01-2008 17:51:22

Efectivamente como comentas es otra posibilidad pero en todos los casos siempre tendrás el problema de los cortes o fallas de energía y aquí es peor porque si falla la energía en el momento justo en que se esté escribiendo o leyendo ese archivo de texto pues ya te imaginarás.


La franja horaria es GMT +2. Ahora son las 09:03:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi