MySQL - 使数据库与多个客户端保持同步的最佳方法

时间:2011-06-30 09:31:30

标签: mysql synchronization multiple-databases

有数百个客户端将使用Windows系统来管理自己的信息。该信息被发送到服务器进行分析(Web系统)。

两者都是,客户端和服务器将具有相同的数据库结构。有些表将通过Web客户端和其他表通过Web系统进行更新。几乎没有表可以更新。

问题在于我们需要保持这些数据库的同步。 当前的方法是在表中存储所有“INSERT,UPDATE,DELETE”语句,并且每天更新一次客户端(打开时)和服务器(关闭时)。

我不喜欢当前的方法,因为我认为它不是很安全(即使我们对数据使用强加密),我相信还有更好的方法。

我刚刚迁移到使用MariaDB,我正在阅读有关Aria存储引擎的信息:

  咏叹调可以重播几乎所有的东西   日志。 (包含   创建/删除/重命名/截断表)。   因此,您要备份Aria   只需复制日志。

问题:

  • 您认为可以使用Aria Logging来解决我的问题(这与当前的方法有何不同)?

  • 有没有人有类似案例的经验(多客户端同步)?

  • 我只是有MyISAM和InnoDB的经验......是否还有其他任何可能更适合这种情况的存储引擎?

###更新(7月2日)###

我探索了使用MySQL binlogs及其自动复制的可能性。恕我直言,该方法非常适用于服务器数据与客户端数据完全相同的情况。 BLACKHOLE存储引擎可用于仅同步确定的表(这可能非常有用)。在我的例子中,服务器和客户端具有相同的结构,但它们没有相同的数据。换句话说,服务器包含所有客户端的数据,每个客户端都有自己的数据集(保持相同的结构)。

尝试应用MySQL的自动复制,需要在服务器中为每个客户端提供一个数据库,这使得它更加复杂。

我认为我会坚持最初的计划,因为它让我可以灵活地轻松查询每个客户的更改(直到找到更好的方法)。

0 个答案:

没有答案
相关问题