You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SymmetricDS无法自动初始化目标表,数据加载同步失败求助

问题:SymmetricDS从PostgreSQL同步到Oracle时自动建表失败

尝试使用SymmetricDS的加载功能,从PostgreSQL源数据库向Oracle目标数据库同步并自动创建表。根据文档说明,该功能应自动在目标库初始化表,但持续报错,仅手动在目标库创建表后同步才能正常工作。

报错日志

[master-engine] - DataService - Queueing up a load to node 002
[master-engine] - DataService - Cancelling load 7
[master-engine] - DataService - Table reload request submitted which does not have a valid trigger/router combination in sym_trigger_router. Request trigger id: 'pablo' router id: 'default' create time: 2024-11-25 03:48:35.72
[master-engine] - PushService - Push data sent to destination:002:002

配置详情

sym_router配置

router_idtarget_catalog_nametarget_schema_nametarget_table_namesource_node_group_idtarget_node_group_idrouter_typerouter_expressionsync_on_updatesync_on_insertsync_on_deleteuse_source_catalog_schemacreate_timelast_update_bylast_update_timedescription
destination to sourceNULLNULLNULLdestinationsourcedefaultNULL111005:59.6NULL05:59.6NULL
source to destinationNULLNULLsimple_tablesourcedestinationdefaultNULL111005:59.6NULL05:59.6NULL
defaultNULLNULLNULLsourcedestinationdefaultNULL111143:01.3NULL43:01.3NULL

sym_trigger_router配置

trigger_idrouter_idenabledinitial_load_orderinitial_load_selectinitial_load_delete_stmtping_back_enabledcreate_timelast_update_bylast_update_timedescriptiondata_refresh_type
pablosource to destination11NULLNULL047:08.0NULL47:08.0NULLNULL

sym_trigger配置

trigger_idsource_catalog_namesource_schema_namesource_table_namechannel_idreload_channel_idsync_on_updatesync_on_insertsync_on_deletesync_on_incoming_batchname_for_update_triggername_for_insert_triggername_for_delete_triggersync_on_update_conditionsync_on_insert_conditionsync_on_delete_conditioncustom_before_update_textcustom_before_insert_textcustom_before_delete_textcustom_on_update_textcustom_on_insert_textcustom_on_delete_textexternal_selecttx_id_expressionchannel_expressionexcluded_column_namesincluded_column_namessync_key_namesuse_stream_lobsuse_capture_lobsuse_capture_old_datause_handle_key_updatesstream_rowtime_based_column_namecreate_timelast_update_bylast_update_timedescription
pabloNULLpublicsample_tabledefaultreload1111NULLNULLNULL1=11=11=1NULLNULLNULLNULLNULLNULLNULLNULLNULLNULL0011110NULL12:41.0NULL12:41.0NULL

问题分析

报错核心是请求的trigger_id 'pablo'与router_id 'default'在sym_trigger_router中无有效关联:

  • 当前sym_trigger_router仅绑定了pablo与router_id 'source to destination',但加载请求使用的是router_id 'default',导致组合无效,加载被取消。
  • 另外,自动建表依赖router配置正确映射目标库的schema和表,当前'source to destination'的target_schema_name为NULL,Oracle环境下需要指定正确的目标schema(通常是用户默认schema),否则无法确定建表位置。

解决方案

  1. 修正trigger-router关联

    • 若加载请求必须使用router_id 'default',需在sym_trigger_router中添加一条记录:trigger_id='pablo'、router_id='default'、enabled=1。
    • 或调整加载触发命令,使用正确的router_id:symadmin reload --trigger pablo --router "source to destination"。
  2. 调整router的目标库配置

    • 对于'source to destination'这条router,设置target_schema_name为Oracle的目标schema(比如你的Oracle用户名),target_table_name改为sample_table(与源表一致),确保SymmetricDS知道要在哪个schema下建表。
    • 若希望沿用源库的schema名称,可将use_source_catalog_schema设为1,但需确保Oracle中已存在该schema。
  3. 验证Oracle用户权限

    • 确保SymmetricDS连接Oracle使用的用户拥有CREATE TABLE权限,否则自动建表操作会静默失败。
  4. 检查加载参数

    • 确认触发加载时未错误指定router参数,若通过UI操作,需选择与pablo绑定的router(source to destination)而非default。

内容的提问来源于stack exchange,提问作者Mendbayar Alzakhgui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:35:16