【问题标题】:MySQL db sync across locationsMySQL 数据库跨位置同步
【发布时间】:2013-03-16 21:18:48
【问题描述】:

我有一个使用 MySQL 存储数据的网络应用程序。 网络应用程序是内部的(不能通过互联网获得)。

我现在必须在 3 个(可能更多)位置(分支机构)部署此应用程序。 他们需要能够同步数据(在一个位置创建的条目在其他分支位置可用)。

要求

  • Web 应用 + mysql 数据库的本地实例
  • 每个位置都在本地读写/在自己的网络上
  • 数据库每天同步一个(可能通过脚本通过 SSH),以便每个位置都具有相同的数据。

我能够解决这个问题的唯一方法(到目前为止)是创建 UUID(唯一标识符)并使用源位(用于原始位置)和同步位(new=0,synced= 1)然后编写一个脚本,在其中我每晚通过 SSH 连接到每个位置,并将 = 我的源和 synced=0 的行添加到每个位置......我意识到这很粗鲁,而且不是很优雅/可靠,但我不确定还有什么做。

客户担心如果互联网连接失败,他希望应用程序能够在本地运行,但仍然在其他分支之间保持同步(通过夜间脚本或其他方式)。正如我所说,已经有 3 个地点,今年晚些时候可能还会有更多。

我们将不胜感激任何有关架构的建议。

附言。出于安全考虑,我没有将数据库连接到互联网。但我愿意接受所有建议。

谢谢。

【问题讨论】:

  • 如果您的数据没有删除或更新,那么每晚插入新行就很简单了……但如果有更新或删除,您会很痛苦如果您尝试手动操作。检查参考手册中的“复制”:dev.mysql.com/doc/refman/5.6/en/replication.html
  • 正确。如果有变化(即使没有预测,这是一个危险的情况),这是一个巨大的痛苦

标签: mysql database web-applications replication sync


【解决方案1】:

您的客户可能会因为这样的架构决策而在额外的硬件、开发和维护成本上花费大量金钱。除非他们有关键任务数据输入需求,否则在所有分支机构位置复制硬件堆栈可能有点疯狂。

话虽如此,他们仍然需要在开放的互联网上移动数据以将数据从服务器复制到服务器,除非他们当然有自己的 VPN,您将在其中进行设置。尝试进行一些日常流程来迁移/合并数据应该是您心中的一个危险信号,并且完全不是初学者。这是一个非常复杂的问题。您可能需要某种主-主数据库复制集群。幸运的是,MySQL 为您提供了执行此操作的能力。不幸的是,设置和正确设置可能很复杂,如果您不得不在这里提出这个问题,这可能对您来说有点挑战。

就数据库安全而言,您无需担心将 MySQL 数据库托管在 Internet 上,只要您采取适当的预防措施来保护服务器即可。这可能会从网络级别开始,只允许访问端口 3306(和 22 用于 SSH 访问)并且只允许访问 Web 应用程序服务器的 IP 地址。这还包括将 MySQL 用户帐户设置为仅接受来自您将要访问的特定已知主机的流量。

【讨论】:

  • 这是一个有3个地点的医疗办公室。他们希望能够跨地点共享电子图表。目前硬件不是很贵,Synology 服务器(每个位置约 1,500 美元 = ok)。他们还将服务器用作本地文件服务器,因此无论如何他们都在硬件上进行规划。我可以打开端口 3306 和 22 并将其限制为来自每个位置的静态 IP。诀窍在于本地读/写然后更新的方法。我知道同步非常困难。我试图疯狂地研究这个。
  • 我确实在 Synologies 上运行了 VPN 服务器,并且我通过 VPN 连接到每台机器以在家中使用数据库。我也正在运行 SSH。
  • 我也在考虑进行此设置:1.读取本地(速度),2.写入主服务器(其中一个位置)。 3.创建一个脚本以在一天结束时将主数据库重新分配到每个位置,以便它们都得到更新。这里的问题再次是互联网需要启动并运行。他们非常害怕它会因为时代华纳搞砸而无法看到病人。
  • 您可能需要查看复制,或者如果您清楚地了解数据是如何更新到表中的(例如,只有少数表中的数据实际发生了变化,并且在一种可预测的方式),那么也许将脚本化的迁移/合并放在一起可能是合理的。您可以考虑的一件事是进行主从/复制,其中所有写入都在单个服务器上完成,而读取则在复制从属上完成。这将是一个更容易的设置,但会阻止在网络中断时从具有只读副本的位置进行写入。
  • :) 只是我要建议的。如果您可以使用多个读取从属设备,那么在 MySQL 中设置主/从复制比 Master-Master 容易得多,并且可以为您提供近乎实时的从属更新(无需同步脚本)。复制对网络中断也具有相当的弹性,因为当网络可用时,salve 只会选择备份。我希望他们不要试图通过一些电缆调制解调器来做到这一点。他们真的应该获得适当的互联网连接。 (不确定您是否在谈论时代华纳的一些“场外交易”产品)
猜你喜欢
  • 2013-02-19
  • 2011-04-08
  • 1970-01-01
  • 2016-11-12
  • 2011-02-02
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多