是否有人知道设计模式可以解决同步两个相同关系数据库的复杂性?我一直在各种项目中遇到这个挑战,无法找到一个深入处理它的合适模式。我面临的具体挑战是:
如果有人知道应对这些挑战的模式,甚至堆栈,我很乐意听到你的想法。我尝试过使用MS Sync Framework,虽然它确实解决了数据同步中涉及的许多问题,但就上面列出的挑战而言,它并不是一个完整的解决方案。
答案 0 :(得分:3)
请检查
Master-Master Row-Level Synchronization
<强>上下文强>
您将要在源和目标之间设计复制,如主 - 主复制中所述。您的要求是:
复制集可在复制的任一端更新。
需要将更新传输给另一方。
根据定义的数据完整性规则,需要在定义的时间点检测和解决冲突。
更改中的潜在冲突将在行级别解决。
<强>解决方案强>
如主 - 主复制模式中所述,在源和目标之间创建一对相关的复制链接。此外,创建同步控制器以管理同步并连接链接。此解决方案描述了其中一个复制链接的功能。另一个复制链接的行为方式相同,但方向相反。要同步复制集的两个以上副本,请为每个其他副本创建相应的复制链接对。
Hint: When designing the replication link, it is important to know what types of conflicts can occur and how to handle them so that the integrity of replicated data remains intact. The design of conflict detection and conflict resolution is described in the Master-Master Replication pattern.
更多数据movemevent模式:
答案 1 :(得分:0)
首先检查this。
关于设计模式的一个非常有趣的博客也是this。
就您的具体挑战而言,考虑到您可以运行MS SQL,运行Sync Framework可以保证,至少以下内容:
确保两个模型一致
一个模型的用户正在写入忙于通过同步更新的模型的并发
会话在同步会话期间从异常回滚
如果您对MS Sync Framework感兴趣,请查看here
答案 2 :(得分:0)
检查liquibase。它是一个工具,可以帮助您以更加存储库友好的方式使用数据库。它支持SQL Server没有问题。