【问题标题】:Mysql database sync between two databases两个数据库之间的Mysql数据库同步
【发布时间】:2011-12-04 04:54:49
【问题描述】:

我们正在不同的商店运行 Java PoS(销售点)应用程序,并带有 MySql 后端。我想让商店中的数据库与主机服务器上的数据库保持同步。

当商店发生一些变化时,它们应该在主机服务器上得到更新。我如何实现这一目标?

【问题讨论】:

  • 容易吗??你认为需要多长时间??
  • @peedee MySQL 复制很容易设置。一些命令和初始同步。我第一次花了大约 30 分钟。
  • 很好的问题是出于同样的目的想知道同样的事情]
  • 您可以使用 MySQL 复制功能,也可以使用一些可用的工具来进行数据库同步,它们在此处列出 stackoverflow.com/questions/52583/…

标签: mysql database


【解决方案1】:

复制并不难创建。

这里有一些很好的教程:

http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/

http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication

这里有一些你必须牢记的简单规则(当然还有更多,但这是主要概念):

  1. 设置 1 个服务器(主服务器)用于写入数据。
  2. 设置 1 个或多个服务器(从属)以读取数据。

这样可以避免错误。

例如: 如果您的脚本插入到主从服务器上的相同表中,您将有重复的主键冲突。

您可以将“从”视为“备份”服务器,与主服务器拥有相同的信息,但不能直接添加数据,只能按照主服务器的说明进行操作。

注意:当然,您可以从主机读取数据,也可以写入从机,但请确保不要写入相同的表(主机到从机和从机到主机)。

我建议您监控您的服务器以确保一切正常。

如果您需要其他帮助,请告诉我

【讨论】:

  • 是的,Shop = master,Server = slave
  • 我现在已经配置了主数据库,我将连接到一个从数据库.. 当我这样做时,对主数据库的任何更改都会反映在从服务器中,并且从服务器中的更改会反映到大师也是??
  • 是的,如果设置好的话!您可以在主服务器中插入一条记录并在从服务器中进行选择以进行测试。如果通过,你就准备好了!
  • 嘿伙计...我在从站上收到错误 1045。原因是什么?你有什么想法吗?
  • ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) and dev.mysql.com/doc/refman/5.1/en/access-denied.html
【解决方案2】:

三种不同的方法:

  1. 经典的客户端/服务器方法:不要在商店中放置任何数据库;只需让应用程序访问您的服务器。当然如果你设置一个VPN更好,但简单地将连接包装在SSL或ssh中是合理的。 Pro:这是数据库最初的想法。缺点:如果您有高延迟,复杂的操作可能会变慢,您可能必须使用存储过程来减少往返次数。

  2. 复制大师/大师:正如@Book Of Zeus 建议的那样。缺点:设置起来有点复杂(特别是如果您有几家商店),闯入任何商店机器都可能危及整个系统。优点:更好的响应性,因为读取操作完全是本地的,而写入操作是异步传播的。

  3. 离线操作 + 同步步骤:在本地不时地(可能是每小时一次、每天一次、每周一次等)完成所有工作,将上次同步操作中所有新的/修改的记录写成摘要并发送到服务器。优点:可以在没有网络的情况下工作,快速,易于检查(如果摘要可读)。缺点:您没有实时信息。

【讨论】:

  • 我需要设置第 3 种类型的数据库同步(离线操作 + 同步),很想阅读更多关于此的内容。无法用谷歌搜索这个。他们是我可以参考的书/文章吗?
【解决方案3】:

查看 dbForge Studio for MySQL 中的 Schema and Data Comparison tools。这些工具将帮助您比较、查看差异、生成同步脚本并同步两个数据库。

【讨论】:

    【解决方案4】:

    SymmetricDS 就是答案。它支持多个订阅者进行单向或双向异步数据复制。它使用 Web 和数据库技术在关系数据库之间复制表,如果需要,可以近乎实时地进行。

    全面而强大的 Java API 可满足您的需求。

    【讨论】:

    • 如果我在某个没有互联网的区域有带有单独数据库的内部服务器,并且我在数据库网络托管上有在线买家,我想将内部数据库购买迁移到现场,你能告诉我吗如果两者都保留相同的 id,那么两者之间的自动增量会发生什么情况,这会很混乱,对吧!?所以(我需要将内部数据库上的操作同步到实时而不影响ids自动增量和表之间的关系)
    猜你喜欢
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多