SymmetricDS-Oracle指定同步Schema并禁用Push及注册问题求助
SymmetricDS Oracle 同步问题解决指南
核心问题解答
1. 能否指定同步的Schema?
可以。在配置同步规则时,通过sym_table表的source_schema_name字段明确指定ACF、ADM这类需要同步的Schema;也可以在创建触发器时,直接指定对应Schema下的目标表。
2. 能否禁用Push,仅用主到子的Pull模式?
没问题。只需要配置单向的节点组链接,将data_event_action设为P(代表Pull),同时确保子节点侧不配置反向的Push链接,就能实现主节点修改后,子节点主动拉取同步的模式。
节点注册失败的修复步骤
你碰到的“缺少central到client的节点组链接”报错,按下面的步骤逐一排查:
1. 验证节点组链接是否生效
执行插入语句后,先查一下这条记录是否真的存在:
SELECT * FROM sym_node_group_link WHERE source_node_group_id='central' AND target_node_group_id='client';
如果查不到,说明插入没成功——检查语句语法,或者确认是否在SymmetricDS对应的配置数据库里执行的这条SQL。
2. 核对两端节点组配置
- 主节点(centralNode)的
server.properties里,确保:group.id=central external.id=000 - 子节点(clientNode)的
client.properties里,确保:group.id=client external.id=001 registration.url=http://X.X.X.X:31415/sync/centralNode
注意group.id的大小写要和你插入的节点组链接里的完全一致(Oracle对标识符大小写敏感,除非你创建时用了双引号)。
3. 重置注册请求并重新开放注册
先清理可能存在的无效注册请求:
DELETE FROM sym_registration_request WHERE node_group_id='client' AND external_id='001';
然后重新执行开放注册的命令:
bin/symadmin --engine centralNode open-registration client 001
4. 查看日志定位细节问题
去clientNode的logs/symmetric.log里找更详细的报错信息,比如是不是网络连不上主节点,或者数据库用户没有访问ACF/ADM Schema的权限。
5. 确认Oracle权限配置
- 主节点数据库用户需要有创建触发器、读取ACF和ADM Schema表的权限
- 子节点数据库用户需要有写入ACF和ADM Schema表、访问SymmetricDS配置表的权限
内容的提问来源于stack exchange,提问作者Ark
相关产品推荐
相关产品推荐

