SymmetricDS - 冲突解决

时间:2014-02-27 09:30:27

标签: database synchronization multi-master-replication symmetricds

我正在尝试使用SymmetricDS为一个中心节点和许多客户端实现多主双向同步。客户端仅与中心节点(星形拓扑)通信。处理主键冲突时遇到问题。

例如,数据库包含具有列id,name,...的表“person”。在中央数据库中,我有行:

  1. AAA
  2. BBB
  3. CCC
  4. 第一个客户端连接并下载初始加载,因此它具有相同的db。第二个客户做同样的事。

    现在,第一个和第二个客户端在其本地数据库中创建新行。 第一:

    1. AAA
    2. BBB
    3. CCC
    4. DDD
    5. 第二

      1. AAA
      2. BBB
      3. CCC
      4. EEE
      5. 他们会尝试同步,但4.行中存在冲突。可以在SymmetricDS中轻松检测到此冲突,但现在我想通过递增键解决它,直到它被插入然后将更改发送回客户端... 结果将是:

        1. AAA
        2. BBB
        3. CCC
        4. DDD
        5. EEE
        6. 在每个数据库中。怎么做到呢?谢谢。

1 个答案:

答案 0 :(得分:3)

在处理多主双向场景时,使用自动递增PK不是一个好主意。

标准做法是为PK创建GUID以避免客户端之间的冲突。

有关详细信息,请参阅以下网站。

Selecting an Appropriate Primary Key for a Distributed Environment