Comunidad de diseño web y desarrollo en internet online

Ayuda con Replicacion Mysql.

Citar            
MensajeEscrito el 19 Oct 2008 06:20 pm
Hace un par de meses hice una replicacion de una BD Mysql, en general no eh tenido problemas;El sistema que esta en la sucursal y esta configurado para grabar en ls BD maestra(que esta en la matriz) y consultar local; si actualizo(desde el sistema de la sucursal) la informacion de un producto,cliente o cualquier actualizacion pequeña no tengo problemas; el servidor maestro envia la actualizacion y es cuestion de fraccion de segundos que el esclavo tenga la nueva informacion.

El problema que tengo es en modulos que tienen mas querys, Con el que mas eh tenido problemas es con el modulo de traspaso de producto entre inventario de las tiendas; lo que hace el sistema es lo siguiente:

Grabar el traspaso(los datos generales).
Grabar los productos del traspaso en otra tabla.
Disminuir las cantidades de cada producto del inventario de la tienda origen.(de la tabla inventario)
Aumentar las cantidades de cada producto del inventario de la tienda destino.(de la tabla inventario)

Los problemas que eh tenido con este modulo(tambien eh tenido problemas similares con los modulos de salidas de almancen; pero son menos frecuentes que con este modulo) son:

Código :

No graba el traspaso, ni registra los productos ni mucho menos actualiza los inventarios.
Graba el traspaso, pero no registra los productos ni actualiza los inventarios.
Graba el traspaso y los productos pero no actualiza el inventario.
Graba el traspaso, los productos en las cantidades correctas, pero disminuye o aumenta doble el inventario.
Graba el traspaso, graba doble entrada en los productos(osea si deben habar 3 registros de productos para ese traspaso, registra 6; dos veces los mismos registros. En vez de Producto A,Producto B,Producto C quedan grabados como Producto A,Producto B,Producto C,Producto A,Producto B,Producto C) y el inventario lo actualiza normal.
El inventario en la BD esclavo esta actualizado pero el maestro no(*sight no entiendo eso; se supone que el esclavo tiene una copia del maestro)


Tengo mas de 3 semanas buscando la solucion a esto y no eh podido, es por eso que expongo mi problema aca; esta semana que paso(13 al 17) deje de usar la replicacion para en la sucursal trabajar local(grabar y consultar en la BD local; sin conectarse a la matriz para grabar) y no ha habido ningun problema; por lo que creo descartar que sea problema de programacion del sistema.

Para las BDs(esclava y maestra) uso Mysql 5.x con tablas MyISAM; cuando esetaba leyendo de replicacion me parecio comprender que MyISAM era lo mejor(mas facil de configurar, mantener y mejor rendimiento) para la replicacion Slave-Master.

Actualmente se esta usando la siguiente coneccion a internet en la sucursal:

Enlace en Sucursal escribió:

DSL Bajada Subida
Velocidad actual: 1024 kbs 126 kbs
Velocidad máx.: 7341 kbs 1151 kbs
Conexión actual:
Margen de ruido: 25.9 dB 41.3 dB
Atenuación: 37.4 dB 19.0 dB
Potencia de transmisión: 6.0 dBm 11.1 dBm

Y en la matriz:

Enlace Matriz escribió:

DSL Bajada Subida
Velocidad actual: 1024 kbs 128 kbs
Velocidad mx.: 5908 kbs 1236 kbs
Conexin actual:
Margen de ruido: 26.0 dB 31.0 dB
Atenuacin: 22.1 dB 8.5 dB
Potencia de transmisin: 17.3 dBm 10.9 dBm

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 19 Oct 2008 07:34 pm
¿por que replicas de una mysql a ora mysql ??
no te convendria mejor conectarte directamente a la otra DB de forma remota ???


nosotros solo hemos echo eso con dts, pero para alimentar a una mysql desde una mssql

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 19 Oct 2008 07:48 pm
Porque necesito que las consultas sean lo mas rapido, imagina el tiempo que tardaria una vendedora en hacer una venta(consulta clientes,consulta precios de cada producto,consulta inventario para ver la disponibilidad,etc...) o una cajera en hacer un abono a cuenta(consulta clientes,consulta saldo, graba saldo); con replicacion las consultas son dentro de la LAN y solo consumo el trafico de las ultimas actualizaciones.

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 23 Oct 2008 10:41 pm
No he trabajado yo con la tecnología Master/Slave de mysql. La conozco, se como trabaja, pero no la he usado. Te recomiendo que cada que hagas un movimiento confirmes que se hizo correctamente.

No se si puedas meter todo en una transacción y en cuanto ocurra un error haces un rollback.

Si no, pues recurre al plan b(cuando sientas que la vida ya no tiene sentido :lol: ), avientate los movimientos a mano. Mantienes dos conexiones una la local y donde obviamente guardas lo local y otra para sincronizar al server. Si por algo se cae la conexión al server, sigues trabajando en local y vas guardando en cola tus movimientos.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 24 Oct 2008 03:33 pm
Gracias Dano, ¿podrias decirme como hacerle?; ¿hablas de un Stored Procedure? la cosa esque el traspaso hace lo siguiente:
Grabar el traspaso(los datos generales).
Grabar los productos del traspaso en otra tabla.(no se como pasarle una coleccion por parametro al stored procedure todos los productos)
Disminuir las cantidades de cada producto del inventario de la tienda origen.(de la tabla inventario)(de nuevo, como le hago con el monton de productos)
Aumentar las cantidades de cada producto del inventario de la tienda destino.(de la tabla inventario)

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 24 Oct 2008 03:47 pm

Jorgelig escribió:

Gracias Dano, ¿podrias decirme como hacerle?; ¿hablas de un Stored Procedure? la cosa esque el traspaso hace lo siguiente:
Grabar el traspaso(los datos generales).
Grabar los productos del traspaso en otra tabla.(no se como pasarle una coleccion por parametro al stored procedure todos los productos)
Disminuir las cantidades de cada producto del inventario de la tienda origen.(de la tabla inventario)(de nuevo, como le hago con el monton de productos)
Aumentar las cantidades de cada producto del inventario de la tienda destino.(de la tabla inventario)


No necesariamente tiene que ser todo en un store_procedure. Las transacciones son fáciles de usar, mira cuando inicia una transacción nada mas ejecutas este query:
BEGIN;
Eso inicia la transacción.
Después del begin, SIN CERRAR LA CONEXIÓN ve ejecutando los queries que necesitas, cuando un query detectes que tiene error, aplica este query:
ROLLBACK;

Y todo lo que hiciste despues de BEGIN y antes de ROLLBACK, se deshace.

Si, todo estuvo perfecto, para aplicar todos los cambios debes utilizar:
COMMIT;

Es todo. :wink:


Es importante que sepas que las tablas donde utilizes transacciones tienen que ser "InnoDB", MyISAM no sirve para transacciones.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 24 Oct 2008 03:52 pm
Pues ahi esta la cosa, uso tablas MyISAM porque cuando investigue eran mejor para configurar y la replicacion; si las cambio a innoDB se perderan datos ?

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 24 Oct 2008 05:01 pm

Jorgelig escribió:

Pues ahi esta la cosa, uso tablas MyISAM porque cuando investigue eran mejor para configurar y la replicacion; si las cambio a innoDB se perderan datos ?

No se perderan los datos. Pero no cambies NADA sin antes hacer un BackUP. Que yo recuerde no se pierden los datos, solo si tienes mucha info, puede tardarse en convertirse, pero no pasa nada. Pero por aquello de las malditas dudas un BackUP es sagrado.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 07 Nov 2008 03:06 pm

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 07 Nov 2008 03:52 pm
c00l

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.