繁体   English   中英

MySQL db跨位置同步

[英]MySQL db sync across locations

我有一个Web应用程序,使用MySQL存储数据。 网络应用程序是内部的(无法通过互联网使用)。

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

要求

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

我到目前为止(到目前为止)能够弄清楚的唯一方法是创建UUID(唯一标识符),并使用源位(用于始发位置)和同步位(new = 0,synced = 1)对每一行进行编码,然后编写一个脚本,每晚我在该位置SSH到每个位置,并添加=我的源代码并已同步= 0到每个位置的行...我意识到这是蛮横的,不是很优雅/可靠,但是我不确定该怎么做。

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

关于架构的任何建议将不胜感激。

PS。 出于安全考虑,我没有将数据库连接到Internet。 但是我愿意接受所有建议。

谢谢。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM