有数百个客户将使用他们管理自己的信息的 Windows 系统。该信息被发送到服务器进行分析(网络系统)。
客户端和服务器都将具有相同的数据库结构。有一些表格将通过 Windows 客户端更新,而其他表格将通过 Web 系统更新。很少有表可以在两者中更新。
问题在于我们需要保持这些数据库的同步。当前的方法是将所有“插入、更新、删除”语句存储在一个表中,并每天更新一次客户端(打开时)和服务器(关闭时)。
我不喜欢当前的方法,因为我认为它不是很安全(即使我们对数据使用强加密),我相信有更好的方法来做到这一点。
我刚刚迁移到使用 MariaDB,并且正在阅读有关 Aria 存储引擎的文章:
Aria 几乎可以重播日志中的所有内容。(包括创建/删除/重命名/截断表)。因此,您只需复制日志即可备份 Aria。
问题:
您是否认为可以使用 Aria Logging 来解决我的问题(这与当前的方法有何不同)?
有没有人有类似案例(多客户端同步)的经验?
我只是有使用 MyISAM 和 InnoDB 的经验……还有其他存储引擎可以更好地处理这种情况吗?
### 更新(7 月 2 日)###
我探索了使用 MySQL 二进制日志及其自动复制的可能性。恕我直言,该方法非常适合服务器数据与客户端数据完全相同的情况。BLACKHOLE 存储引擎可用于仅同步确定的表(这可能非常有用)。就我而言,服务器和客户端具有相同的结构,但它们没有相同的数据。换句话说,服务器包含所有客户端的数据,每个客户端都有自己的数据集(保持相同的结构)。
尝试应用 MySQL 的自动复制,将需要在服务器中为每个客户端拥有一个数据库,这使得它更加复杂。
我想我会坚持原来的计划,因为它让我可以灵活地轻松查询每个客户端的更改(直到我找到更好的方法)。