MySQL复制 - 触发器不复制多个数据库

时间:2011-11-17 21:30:03

标签: mysql triggers replication

我有以下MySQL 5.5.16设置,正常运行: 服务器A w / db.a和db.b. 服务器B通过--replicate-wild-do-table配置为db.a(而不是db.b)的slave Srv.A-db.b上的表在插入时具有插入/更新db.a

的触发器

db.a在Server.B中正确复制,即,如果在server.A上的db.a上通过SQL客户端进行更新,则在Server.B上正确复制到db.a

现在出现问题:更新/插入db.a的Server.A / db.b上的触发器没有被复制...已经失去了很多时间耗尽我对此的全部了解......

在Srv.A / db.b上我最终创建了一个指向Srv.A / db.a的联合表,并且通过联合表工作的触发器正在正确复制,但是非常慢并且有些东西无法使用(ON DUPLICATE例如更新)...所以真的是一个停止山羊的解决方案。

如果我尝试复制db.a和db.b,则触发器工作正常,但db.b是巨大的,不应该复制到服务器.B。

当只复制db.a时,有关如何使触发器在db.b - > db.a上工作的任何建议吗?

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

参见MySQL Trigger FAQ B.5.12:http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-B-5-1-12

'MySQL 5.0中的触发和复制的工作方式与大多数其他数据库系统相同:通过主服务器上的触发器执行的操作不会复制到从服务器。'

也许您可以更改导致触发器运行的所有事件,而不是调用存储过程,该存储过程将执行触发器现在执行的相同操作。