开发者社区> 问答> 正文

添加字段报错

主库中添加一个字段'unionid’,发现日志有如下报错,添加一个字段'unionid’,发现日志有如下报错,

首先是在表里面没有发现这个字段,而后,就说有重复的字段,我返回数据查询,发现从库已经添加这个字段了。但同步channel已经挂起了。不知道是什么原因。

2015-05-21 11:40:49 pid:2 nid:2 exception:setl:com.alibaba.otter.node.etl.transform.exception.TransformException: unionid is not found in Table [name=users; 37 columns] and source : dji_store_production..*

2015-05-21 11:41:48 pid:2 nid:2 exception:setl:com.alibaba.otter.node.etl.load.exception.LoadException: java.util.concurrent.ExecutionException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'unionid' Caused by: java.util.concurrent.ExecutionException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'unionid' at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at com.alibaba.otter.node.etl.load.loader.db.DataBatchLoader.load(DataBatchLoader.java:107) at com.alibaba.otter.node.etl.load.loader.OtterLoaderFactory.load(OtterLoaderFactory.java:50) at com.alibaba.otter.node.etl.load.LoadTask$1.run(LoadTask.java:85) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'unionid' Caused by: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'unionid' Caused by: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'unionid' at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTransl

原提问者GitHub用户 laopangzhang

展开
收起
大圣东游 2023-06-21 17:21:50 37 0
2 条回答
写回答
取消 提交回答
  • 检查是否配置了双向同步,并且两个方向都开启了DDL同步,关闭其中一个方向的DDL同步

    原回答者GitHub用户agapple

    2023-06-21 18:29:27
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    根据您提供的信息,您在主库中添加了一个名为'unionid'的字段,并且在同步过程中出现了错误。错误日志提示"unionid is not found in Table",表明在目标库中找不到这个字段。这个问题可能是由于Otter同步配置不正确或者同步过程中出现了错误导致的。

    为了解决这个问题,您可以尝试以下解决方案:

    检查同步配置:检查Otter同步配置是否正确,确保同步配置中包含了'unionid'字段,并且该字段已经正确映射到目标库中的表和列。

    检查目标库结构:检查目标库中的表结构是否正确,确保目标库中已经添加了'unionid'字段,并且该字段的类型和长度等信息与源库中的字段信息一致。

    检查同步过程中是否出现错误:检查同步过程中是否出现了其他错误,例如网络连接错误或者数据转换错误。如果同步过程中出现了错误,可能会导致同步中断或者数据丢失。

    尝试重新同步:如果以上解决方案无法解决问题,您可以尝试重新同步数据。在重新同步数据之前,建议您备份目标库中的数据,以免数据丢失。

    需要注意的是,这个问题可能不仅限于同步配置或者目标库结构等因素,还可能涉及其他因素。因此,建议您在尝试以上解决方案之前,先仔细检查日志文件,以确定问题的具体原因。

    2023-06-21 17:58:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载