1

我的问题很像这个。但是我在 MySQL 上,我正在寻找我能找到的“最低技术”解决方案。

情况是我有 2 个数据库,其中应该包含相同的数据,但主要是在它们无法相互联系时进行更新。我怀疑有某种集群或主/从事物能够很好地同步它们。然而,在我的情况下,这是主要的矫枉过正,因为这只是我自己使用的临时数据库。

有什么好方法可以做到这一点?

我目前的方法是在其中一个上建立一个联合表,并且每隔一段时间,通过插入/选择将数据通过网络填充到另一个。尝试处理主键和不处理的东西有点令人费解。(insert ignore似乎无法正常工作)

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

4

2 回答 2

5

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

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

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

于 2008-11-13T03:30:00.733 回答
0

我目前的解决方案是

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

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

于 2008-11-13T22:07:57.803 回答