gpt4 book ai didi

firebird - SymmetricDS 中的数据传递

转载 作者:行者123 更新时间:2023-12-03 22:28:55 26 4
gpt4 key购买 nike

我感觉有点傻,我搜索答案并没有发现其他人遇到这个问题。

假设我有 NodeHQ、Node1 和 Node2。我已经创建了触发器来在 3 个之间同步 TableA,如下所示:

Node1 <---> NodeHQ <---> Node2

节点 1 和节点 2 具有彼此不同的数据子集。 NodeHQ 具有来自两个节点(两者的子集)的管理信息。 3 个节点中的每一个都在不同的 NODE_GROUP 中。

现在,使用我设置的触发器和路由器,在 Node1 和 Node2 上可以在 NodeHQ 插入/更新/删除记录。但是,如果我在 Node1 或 Node2 上进行更改,它只会到达 NodeHQ。它永远不会传递给另一个。

到目前为止我已经尝试过:

  • 将涉及的触发器的 SYNC_ON_INCOMING_BATCH 设置为 1,没有变化
  • 为每个 NODE_GROUP 创建单独的 SYM_TRIGGER,没有变化
  • 使用转换无害地更改记录,没有变化
  • 删除然后插入所有规则,没有变化
  • 使用 Symadmin sync-triggers -f 强制重新创建触发器,没有变化

我已经上下阅读了用户指南,他们对此相对不明确。 http://www.symmetricds.org/doc/3.6/user-guide/html/advanced.html#bi-direction-sync

现在,所有节点的 SYNC_ENABLED=1。所有 SYM_TRIGGER 都设置为 SYNC_ON_INCOMING_BATCH=1。我的 SYM_ROUTER 都设置为 SYNC=1,并且使用 ROUTER_TYPE='default'。老实说,我已经尝试了很多其他的小东西,但似乎没有什么能让它把数据传递给下一个 NODE_GROUP。我的想法用完了。

他们自己的文档表明 SYNC_ON_INCOMING_BATCH 使触发器能够将数据传递到它到达的每个位置的其他节点。到目前为止,我对此所做的更改没有产生任何结果。还有什么可以尝试的?或者你认为我应该怎么做?

我正在使用 Firebird 2.52 和 SQL Dialect 1。

最佳答案

因此,在调试中运行 SymmetricDS 3.7.19 版时,我发现在我更改 SYM 表的大多数情况下,触发器没有正确重新生成。每当我更改规则时,日志都会显示它正在重新制作相关的触发器。

解决方案:在每个引擎上运行 symadmin sync-triggers -f。这会强制重新生成每个触发器,而且似乎已经解决了这个问题。我一定会跟踪此事,以帮助开发人员将其防患于未然。

关于firebird - SymmetricDS 中的数据传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com