如何设置和运行SymmetricDS反向初始加载(从store到corp)

时间:2013-12-26 10:53:11

标签: synchronization symmetricds

我想构建下一个结构:一个父(注册)节点,NAT后面的几个客户端节点。客户端节点将更改推送到父级。

我接受SymmetricDS example with corp and store,配置它,一切正常。然后我尝试将初始数据改为store而不是corp

------------------------------------------------------------------------------
-- Sample Data
------------------------------------------------------------------------------
insert into "item" ("item_id", "name") values (11000001, 'Yummy Gum');
insert into "item_selling_price" ("item_id", "store_id", "price", "cost") values (11000001, '001',0.20, 0.10);
insert into "item_selling_price" ("item_id", "store_id", "price", "cost") values (11000001, '002',0.30, 0.20);

insert into "sale_transaction" ("tran_id", "store_id", "workstation", "day", "seq") 
values (900, '001', '3', '2012-12-01', 90);
insert into "sale_return_line_item" ("tran_id", "item_id", "price", "quantity", "returned_quantity")
values (900, 11000001, 0.20, 1, 0);

同步工作正常,但初始加载除外。

我尝试下次重新加载:

corp重新加载001

$ ../bin/symadmin --engine corp-000 reload-node 001

Log output will be written to ../logs/symmetric.log
[] - AbstractCommandLauncher - Option: name=engine, value={corp-000}
[corp-000] - PostgreSqlSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.postgresql.PostgreSqlSymmetricDialect
[corp-000] - ExtensionPointManager - Found 6 extension points that will be registered
Successfully enabled initial load for node 001


[corp-000] - PurgeService - Purged all 0 incoming batch for node 001
[corp-000] - RouterService - Inserted reload events for node 001 in 223 ms
[corp-000] - RouterService - Routed 2 data events in 179 ms


[store-001] - PullService - Pull data received from corp:000:000.  1 rows and 1 batches were processed
[store-001] - PullService - Immediate pull requested while in reload mode
[store-001] - RouterService - Routed 1 data events in 337 ms
[store-001] - ConfigurationChangedFilter - About to syncTriggers because new configuration came through the data loader
[store-001] - TriggerRouterService - Synchronizing triggers
[store-001] - TriggerRouterService - Could not find any database tables matching 'sale_tender_line_item' in the datasource that is configured
[store-001] - TriggerRouterService - Done synchronizing triggers
[store-001] - PullService - Pull data received from corp:000:000.  2 rows and 2 batches were processed
[store-001] - PullService - Immediate pull requested while in reload mode
[store-001] - PullService - Pull data received from corp:000:000.  2 rows and 3 batches were processed
[store-001] - PullService - Immediate pull requested while in reload mode
[store-001] - PullService - Pull data received from corp:000:000.  2 rows and 4 batches were processed
[store-001] - PullService - Immediate pull requested while in reload mode
[store-001] - PullService - Pull data received from corp:000:000.  3 rows and 5 batches were processed
[store-001] - RouterService - Routed 1 data events in 509 ms

corp重新加载000

$ ../bin/symadmin --engine corp-000 reload-node 000

Log output will be written to ../logs/symmetric.log
[] - AbstractCommandLauncher - Option: name=engine, value={corp-000}
[corp-000] - PostgreSqlSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.postgresql.PostgreSqlSymmetricDialect
[corp-000] - ExtensionPointManager - Found 6 extension points that will be registered
Successfully enabled initial load for node 000


[corp-000] - RouterService - Routed 1 data events in 137 ms


[store-001] - PullService - Pull data received from corp:000:000.  1 rows and 1 batches were processed
[store-001] - RouterService - Routed 1 data events in 558 ms

store重新加载001

$ ../bin/symadmin --engine store-001 reload-node 001

Log output will be written to ../logs/symmetric.log
[] - AbstractCommandLauncher - Option: name=engine, value={store-001}
[store-001] - MySqlSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.mysql.MySqlSymmetricDialect
[store-001] - ExtensionPointManager - Found 6 extension points that will be registered
Successfully enabled initial load for node 001


[store-001] - RouterService - Routed 1 data events in 222 ms

store重新加载000

$ ../bin/symadmin --engine store-001 reload-node 000

Log output will be written to ../logs/symmetric.log
[] - AbstractCommandLauncher - Option: name=engine, value={store-001}
[store-001] - MySqlSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.mysql.MySqlSymmetricDialect
[store-001] - ExtensionPointManager - Found 6 extension points that will be registered
Successfully enabled initial load for node 000


[store-001] - RouterService - Routed 1 data events in 338 ms

我发现此文档http://www.symmetricds.org/doc/3.5/html-single/user-guide.html#configuration-initial-load-reverse并将auto.reload.reverse=true添加到store属性文件中,但初始加载仍无法正常工作。

我尝试使用sym_parameter auto.reload

INSERT INTO sym_parameter (external_id,node_group_id,param_key,param_value)
VALUES ('000','corp','auto.reload','true');

auto.reload.reverse

INSERT INTO sym_parameter (external_id,node_group_id,param_key,param_value)
VALUES ('ALL','store','auto.reload.reverse','true');

但没有帮助。

我如何解决我的问题?

2 个答案:

答案 0 :(得分:1)

参数auto.reload和auto.reload.reverse仅在注册时工作。

要在注册后发送初始加载,您必须使用SymmetricDS附带的symadmin工具。

实施例: ../bin/symadmin --engine corp-000 reload-node 001

用户指南中提供了一个示例... http://www.symmetricds.org/doc/3.5/html-single/user-guide.html#ch02-initial-load

答案 1 :(得分:1)

当我将auto.reload.reverse=true置于corp.properties时,反向重新加载将开始注册工作。但是有了FK错误。可能items未同步,因为方向错误。然而,对于我的一个方向的真实设置,一切正常。