【发布时间】: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