首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL体系结构当多个用户拥有一个本地数据库并全部同步到一个云数据库时

MySQL体系结构当多个用户拥有一个本地数据库并全部同步到一个云数据库时
EN

Stack Overflow用户
提问于 2013-11-03 03:35:48
回答 3查看 1.9K关注 0票数 4

我正在用Node.js和MySQL创建这个web应用程序,我在数据同步方面苦苦挣扎。

下面是一个场景:

假设我们有1000个客户,他们的office/站点中都有一个本地的we服务器数据库。用户可以登录、编辑数据、数据传感器等。为了示例,所有这些活动都有助于每个客户/站点每天大约500 to的表数据。因此,1000个客户中的每个人都有一个本地数据库,该数据库将在一天内不断地使用新数据进行更新。

同时,对于所有1000个客户,有一个云服务,允许他们登录并查看他们所有的数据,就像他们在本地现场一样。他们还可以从云中进行更改,编辑/创建/删除数据。

现在我遇到的问题是:

  • 每个站点都需要与云服务器双向同步。你有什么建议吗?(多主复制?,群集?,编写自定义复制?)利弊是什么?
  • 当客户的站点处于脱机状态,并且在本地数据库和云端数据库中都添加了新的数据时,会怎样呢?冲突和合并通常是如何完成的?

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2013-11-03 03:54:30

想象一下这样一个平行的现实:ATM机与银行没有链接,它们使用数据库的副本,直到一天结束时才同步。

你可以开车到这个城市的每个自动取款机,并多次提取你所有的钱。只有当你已经是百万富翁并离开这个国家时,他们才会注意到欺诈行为。

这只是一个例子,但你知道,即使你知道这个同步机制,你仍然会有意想不到的问题,不仅值被改变,而且不同的记录被用相同的主键创建等等。这可能是一个主要的问题。

我认为根本没有解决这一问题的通用技术。您必须仔细研究应用程序在数据库中可能采取的每一个操作的同步方面。我不知道,可能会在进程中生成一个用于同步的可运行SQL脚本。

票数 1
EN

Stack Overflow用户

发布于 2013-11-03 04:18:50

从个人经验来看: MySQL复制不能很好地扩展。如果同步失败,则需要某种机制来通知和恢复。如果你有上千个这样的工作要做,你将做很多的操作工作。

另一种观点是:考虑跟踪变更。当任何一端进行更改时,将该更改提交到更改控制系统。在预定义的时候,让两端锁定更改,让两端运行一个进程从更改日志中筛选副本,然后让两端用非重复的方式更新他们的数据库。最后,解锁更改。同时,编写两端以查阅更改系统,列出挂起的更改。

这不是一个容易的情况:你有大规模的,分布的处理。尽量减少移动部件,以减少维护点。

票数 1
EN

Stack Overflow用户

发布于 2020-12-18 01:38:06

Mysql复制不能用于此目的。

但是,如果您可以使用基于所有文档的存储,Couch解决方案将能够解决这个问题。我们使用沙发数据库已经有一段时间了,它已经很好地解决了这个问题,我们将本地的沙发数据库同步到服务器沙发集群。我知道这是个老帖子--但我希望有人会发现这有用。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19749578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档