如何同步两个有不同方案的MySQL数据库?

时间:2011-07-18 17:11:03

标签: mysql sql database synchronization data-synchronization

我有两个完全不同的MySQL数据库,它们都有自己的用户表方案。我想同步用户表(实时),因此,当用户被添加到任一数据库时,另一个应该相应地更新。我的问题是,是否可以进行这种同步?如果是,那么有效的方式/方法是什么?

2 个答案:

答案 0 :(得分:2)

如果您希望在插入/更新行时在数据库中发生这种情况,那么它听起来像是TRIGGER的候选者。这将允许您编写代码,以便每当表A发生更改时,您都可以自动将“镜像”更改为表B.请注意,因为您将在两个方向上都有触发器,所以您确定了告诉插入/更新来自另一个表的触发器的方式,并且你不会陷入无限循环。

答案 1 :(得分:1)

是的,这是可能的,但由于您的架构不同,最好的方法就是手动完成;在更新其中一个数据库的代码中,只需让它适当地更新其他数据库。这非常必要,因为你的模式不同;您正在有效地实现在更新时调用的手动映射器。

还有其他方法可以做到,但这是最简单的方法,并且非常有效。

编辑:好的,其他方法:拥有一个常规作业(cronjob或类似的),根据自上次查询后的更新查询一个表,并将这些更新传播到第二个表;然而,这种方法存在潜在的滞后性。或者,您可以根据每个用户表的触发器执行某些操作,但我建议避免使用此方法,因为它会引入一些可能严重的执行时间增加,具体取决于触发器的实现方式。但我仍然说最简单的方法是修改用户表更新代码以修改两个表而不是一个。