【问题标题】:MySQL replication between main server and on-location laptops主服务器和本地笔记本电脑之间的 MySQL 复制
【发布时间】:2014-03-19 12:12:35
【问题描述】:

我们是一家在各种体育赛事中提供时间跟踪的公司。为了存储这些计时结果,我们使用带有 MySQL 服务器的笔记本电脑,其中包含计时数据。

在当前情况下,我们在开车前往活动之前获得主服务器(主服务器,在我们的网站后面运行)的本地副本,并在活动结束后将这些更改提交回主服务器。

在不久的将来,我们希望在我们的网站上实施实时跟踪,并将用户资料更改(用户可以在批次开始之前更改他们的批次时间)到现场机器。

一个事件存在多个批次(开始时间)。用户订阅了某个批次,但有时当他们处于流量中时,例如,他们喜欢将他们的批次更改为以后的批次。

所以我们需要双向同步,因为数据在我们的主服务器和我们的本地机器上都得到更新。 在大多数活动中,我们都可以访问互联网。如果我们不这样做,我希望在连接再次联机后立即进行同步。

我已经了解了 MySQL 主-主复制。这看起来很不错,但我并不是 100% 满意。

对如何设置这样的环境有什么建议吗?非常欢迎所有建议!

【问题讨论】:

  • 请查看我更新的问题。

标签: mysql synchronization replication


【解决方案1】:

多主复制最适合数据库始终连接的环境。这减少了发生冲突的机会。多主复制没有任何自动冲突解决,如果两个主服务器之间存在任何延迟,可能会导致数据不正确。

多主复制通常用于提供冗余。如果一个 master 发生故障,所有写入都可以故障转移到另一个。

使用多主复制时,如果您在服务器之间存在延迟(未连接或连接缓慢)时允许两个主服务器上的更新,则可能会发生数据冲突,从而导致数据不正确或意外。

多主复制不是为离线分布式数据库同步而设计的,但如果您有避免数据冲突的策略,则可以在这种情况下使用它。

为完全避免冲突,一次只允许更新一个数据库。

您可以设计网站来检测本地数据库的复制是否处于活动状态,如果是,则仅允许在网站上进行更改,然后将其复制到本地数据库。

如果没有 Internet 连接和复制,则要求用户在活动时更新本地数据库上的数据。重新联机或重新建立连接后,您可以复制回网站数据库。

由于不同事件的数据不会发生冲突,因此这不会妨碍您的网站继续为即将发生的事件运行,同时您限制网站上正在进行的事件的更新。

关于时间跟踪数据,由于网站上根本不会更新,因此您不必担心冲突。您可以随时将该数据复制到网站管理员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2022-07-09
    • 2011-12-22
    相关资源
    最近更新 更多