如何保持2个临时数据库同步

时间:2008-11-13 02:21:29

标签: mysql synchronization federated-table

我的问题很像this one。但是我在使用MySQL,我正在寻找能找到的“最低技术”解决方案。

情况是我有2个数据库,其中应包含相同的数据,但主要是在它们无法相互联系时更新。我怀疑有某种聚类或主/从的东西可以很好地同步它们。然而,在我的情况下,这是一个主要的矫枉过正,因为这只是我自己使用的临时数据库。

这样做的好方法是什么?

我目前的做法是在其中一个上安装一个联合表,并且经常通过插入/选择将数据通过线路填充到另一个。尝试处理主键有什么问题。 (insert ignore似乎无法正常工作)

P.S。我可以轻松地构建一个选择要传输的行的查询。

2 个答案:

答案 0 :(得分:5)

MySQL的内置复制非常容易设置,即使在大多数时间断开数据库时也能正常工作。我说配置这比任何自定义解决方案简单得多。

有关说明,请参阅http://www.howtoforge.com/mysql_database_replication,您应该在10-15分钟内启动并运行,您无需再考虑它。

我能看到的唯一缺点是它是异步的 - 即。你必须有一个指定的主人来获得所有的改变。

答案 1 :(得分:0)

我目前的解决方案是

  • 在源框上设置一个联合表,用于抓取目标框上的表格
  • 在源框上设置一个视图,选择要更新的行(作为联合表的连接)
  • 在目标框上设置另一个联合表,用于抓取源框上的视图
  • 在目标框上发出INSERT...SELECT...ON DUPLICATE UPDATE以运行拉动。

我想我可以抓住源表并一次性完成所有操作,但根据我一直看到的查询日志,我猜我最终会运行大约20K查询或关于100-300MB的数据传输取决于事情的发生。上面提到的设置导致大约4个查询,并且传输的数据比实际需要的数据少得多。