Database 在不同商店之间使用Symmetricd共享数据库

Database 在不同商店之间使用Symmetricd共享数据库,database,data-synchronization,symmetricds,Database,Data Synchronization,Symmetricds,我们正在为我们的一个应用程序评估SymmetricDS 我们希望在多个存储之间同步数据库。数据需要从一个存储流向中央数据库,然后返回到不同的存储 在SymmetricDS中,我们能够实现如下数据流: store -> central database // whenever we modify/insert/delete data in store, 而且来自 central database -> store // whenever we modify/insert/delet

我们正在为我们的一个应用程序评估SymmetricDS

我们希望在多个存储之间同步数据库。数据需要从一个存储流向中央数据库,然后返回到不同的存储

在SymmetricDS中,我们能够实现如下数据流:

store -> central database // whenever we modify/insert/delete data in store, 
而且来自

central database -> store // whenever we modify/insert/delete data in central db
但我们需要的是来回一点

store -> central database -> stores
i、 e.store在其数据库中插入一个数据行,它应该转到中央数据库,然后返回选定的存储

将问题编辑如下,以详细说明当前未同步的表

我们有继承权

商店 连锁店 中央数据库拥有所有商店和连锁店的信息

每个商店都必须有一个基本信息,如其连锁店内所有商店的地址。 商店可以将另一家商店添加到其连锁店中。一旦发生这种情况,添加的商店必须通过同步该链中的所有商店来获取信息

表格如下:

STORE_CHAINS(具有STORE_ID和CHAIN_ID之间的映射)

连锁店示例:

STORE_ID    CHAIN_ID
A           CHAIN1
B           CHAIN1
C           CHAIN1
Y           CHAIN2
Z           CHAIN2
有一个STORES表,其中包含每个store的详细信息,store_ID是主键

存储表的示例:

STORE_ID    STORE_ADDRESS   ...
A           AddrA
B           AddrB
C           AddrC
D           AddrD
...         
X           AddrX
Y           AddrY
Z           AddrZ
每个存储都与中央存储表数据库的一部分同步,其中包含一些基本信息。只有共享同一连锁店的门店的详细信息才会同步

例如,这里,如果商店C向STORE_CHAINS表添加了一个新映射(D,CHAIN1),那么新添加的商店D应该通过同步映射条目本身以及商店表中关于商店a、B、C的详细信息来接收,因为它们共享相同的CHAIN1。此外,还将向门店A、B发送门店链映射条目和D的门店条目

我们的问题是A、B、C的存储条目没有被发送到D。只有新创建的映射(D,CHAIN1)被同步到D

表STORE\u CHAINS是唯一一个实际更改了数据的表,STORES表没有更改。我们如何确保每当创建一个新的(STORE_ID,CHAIN_ID)映射时,STORES表的触发器也被触发,其数据被发送到所有相关的存储

我们在所有情况下都使用subselect来选择应该发送哪些存储/存储组映射条目。如果我们对任何存储进行初始加载,选择逻辑工作正常


提前感谢。

将“传入”批次上的“同步”列的值设置为1,如文档中所述


使用CUSTOM\u BEFORE\u UPDATE\u TEXT或CUSTOM\u BEFORE\u INSERT\u TEXT对需要同步的其他表中的所有依赖项行触发sunny UPDATE

如文档中所述,将\u incoming\u批上的列sync\u的值设置为1



使用CUSTOM_BEFORE_UPDATE_TEXT或CUSTOM_BEFORE_INSERT_TEXT对需要同步的其他表中的所有依赖项行触发晴朗更新

嗨,Boris,这似乎可行。是否也可以使相关表同步。对于上面的示例,库存表同步,但包含库存使用PRODUCT_ID引用的产品的表不同步。当然,对于相关表的触发器,您还需要将sync_incoming_batch设置为1。这样做了吗,仍然有一个表未同步,进一步阐述了问题,以说明哪个表未同步。未同步的表的名称是什么?开始给出一个未同步的具体示例Hi Boris,这似乎有效。是否也可以使相关表同步。对于上面的示例,库存表同步,但包含库存使用PRODUCT_ID引用的产品的表不同步。当然,对于相关表的触发器,您还需要将sync_incoming_batch设置为1。这样做了吗,仍然有一个表未同步,进一步阐述了问题,以说明哪些表未同步。未同步的表的名称是什么?开始给出一个具体的未同步示例这些新添加的存储是否通过中央数据库同步?那么他们是不是已经注册了?如果是,则将自动初始加载设置为同步itNo所需的所有数据。如果直接在中心添加映射,则存储不同步。但若任何存储发送了初始加载,那个么router subselect条件将正确工作,以确保它获得其链中所有存储的正确数据。你所说的“设置自动初始加载”是什么意思。你如何增加一个新的商店?每个商店都有自己的symmetricds服务器吗?我想它必须注册,下一件事是初始加载,当你可以要求加载主数据时每个存储都有一个唯一的id,用作symmetricds节点的外部id。在上面的问题中,SymmetricDS没有添加新的存储。所有商店A、B……Z都已注册。仅创建了门店D和门店链1之间的新映射。存储D已作为节点存在于SymmetricDS生态系统中。我们现在想要的是更多的行,即中央存储数据库中存储D的行,现在与A、B和C的存储数据库同步,因为它们现在开始共享相同的链1。希望这能说明问题。请查看我回答中的更新。这些新添加的商店是否通过中央数据库同步?那么他们是不是已经注册了?如果是,则将自动初始加载设置为同步itNo所需的所有数据。如果直接在中心添加映射,则存储不同步。但若任何存储发送了初始加载,那个么router subselect条件将正确工作,以确保它获得其链中所有存储的正确数据。你所说的“设置自动初始加载”是什么意思。你如何增加一个新的商店?每个商店都有自己的symmetricds服务器吗?我想它必须注册下一件事是初始加载,当你可以要求加载主数据时每个存储都有一个唯一的id,用作外部id f