【问题标题】:SymetricDS Multi-NodeGroup ReplicationSymmetricDS 多节点组复制
【发布时间】:2020-12-01 01:01:42
【问题描述】:

在 SymmetricDS 中,多年来我们一直在成功地从主节点复制到子节点,从子节点到主节点。我们现在需要从主服务器复制到主服务器(镜像),其中后一个主服务器是一个镜像报告数据库。请记住,主/子关系之间的某些表是异步的。当我们为 master 构建 SymmetricDS 配置时,我们会看到成功的初始加载。我们还看到 master --> mirror 之间的成功复制。我们无法解决的是 child --> master --> mirror 之间的复制。像往常一样,发生在子节点上的任何更改都会复制到主节点,但不会移动到镜像中。如果更改直接发生在主服务器上,则更新镜像。我们两者都需要。

【问题讨论】:

  • 对称服务器 3.7.2,mySQL 5.7.21
  • 由于某种原因,SymmetricDS 中的 sym_node 表包含一个 node_group_id 列。由于 sym_node 列是唯一的,因此这要求一个节点只能分配给一个节点组。从表面上看,这似乎非常有限,例如,一个节点应该能够包含在多个节点组(主子/主镜像)中。

标签: symmetricds


【解决方案1】:

【讨论】:

  • 我不相信双向是答案。如果 master 从 child_1 接收数据,则需要复制到其 master 镜像(一种方式),而不是复制回 child_1。我不希望 child_1 接收它自己的数据,也不希望 child_2、3、4 等接收 child_1 数据。除了主镜像不接收 child_x 数据之外,这可以完美地工作。
  • 双向同步不包括要转发到的数据源。来自所有子节点的正确路由数据将仅同步到镜像。需要帮助来创建这样的路由表达式?
【解决方案2】:

我相信我找到了解决方法。在 sym_data 中记录了 node_id 以防止循环。该值表示一个子节点。镜像主节点与子节点没有联系或关系,因此当主触发器触发时,它会记录子节点,因此主镜像忽略它。如果我修改触发器以硬编码结果中的主节点而不是子节点,则主镜像然后处理结果。同样,我认为 SymmetricDS 在 sym_node 表方面存在限制,因为它不应该需要 node_group_id(应该允许一个节点加入许多 node_groups)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多