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

Triggers distribuidos

Estas en el tema de Triggers distribuidos en el foro de Mysql en Foros del Web. Que tal foro, tengo una duda con un ejercicio, como se podría ejecutar un trigger en MySQL que funcione en 2 ordenadores, me explico; una ...
  #1 (permalink)  
Antiguo 03/05/2015, 19:53
 
Fecha de Ingreso: mayo-2015
Mensajes: 1
Antigüedad: 8 años, 11 meses
Puntos: 0
Triggers distribuidos

Que tal foro, tengo una duda con un ejercicio, como se podría ejecutar un trigger en MySQL que funcione en 2 ordenadores, me explico; una BD distribuida entre 2 ordenadores conectados por un modem. Aplicar un trigger en la BD de la pc1 y se vea afectada BD en la pc2.
¿Algun consejo con la sentencia?
  #2 (permalink)  
Antiguo 04/05/2015, 06:06
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, 4 meses
Puntos: 2658
Respuesta: Triggers distribuidos

Empecemos mirando el manual de referncia, en cuanto a temas de replicacion y triggers:

Cita:
17.4.1.32 Replicación y triggers

Con la replicación basada sentencias, los triggers ejecutados en el maestro también ejecutan en el esclavo. Con la replicación basada en filas, los triggers ejecutados en el maestro no se ejecutan en el esclavo. En su lugar, los cambios de fila en el maestro como resultado de la ejecución de triggers se replican y se aplican en el esclavo.

Este comportamiento es por diseño. Si bajo la replicación basada en filas del esclavo aplica cambios al igaul que el master, así como los cambios de fila causadas por ellos, los cambios se aplicarán dos veces en el esclavo, dando lugar a diferentes datos sobre el maestro y el esclavo.

Si se quiern disparadores para ejecutar tanto en el amo y el esclavo, tal vez porque tiene diferentes triggers en el maestro y esclavo, se debe utilizar la replicación basada en sentencias. Sin embargo, para permitir que los triggers del lado del esclavo, no es necesario utilizar la replicación basada en sentencias-exclusiva. Es suficiente para cambiar a la replicación basada en la sentencia sólo para aquellas declaraciones en las que desea este efecto, y para utilizar la replicación basada en filas el resto del tiempo.

Una declaración invocando un trigger (o función) que causa una actualización a una columna AUTO_INCREMENT no se replica correctamente utilizando la replicación basada declaración. MySQL 5.6 marca cada sentencia como insegura. (Bug # 45677)
En otras palabras, para lo que quieres debes usar replicación Master/slave, y no distribución propiamente dicha.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bd, sql
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 16:49.