主库中添加一个字段'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
检查是否配置了双向同步,并且两个方向都开启了DDL同步,关闭其中一个方向的DDL同步
原回答者GitHub用户agapple
根据您提供的信息,您在主库中添加了一个名为'unionid'的字段,并且在同步过程中出现了错误。错误日志提示"unionid is not found in Table",表明在目标库中找不到这个字段。这个问题可能是由于Otter同步配置不正确或者同步过程中出现了错误导致的。
为了解决这个问题,您可以尝试以下解决方案:
检查同步配置:检查Otter同步配置是否正确,确保同步配置中包含了'unionid'字段,并且该字段已经正确映射到目标库中的表和列。
检查目标库结构:检查目标库中的表结构是否正确,确保目标库中已经添加了'unionid'字段,并且该字段的类型和长度等信息与源库中的字段信息一致。
检查同步过程中是否出现错误:检查同步过程中是否出现了其他错误,例如网络连接错误或者数据转换错误。如果同步过程中出现了错误,可能会导致同步中断或者数据丢失。
尝试重新同步:如果以上解决方案无法解决问题,您可以尝试重新同步数据。在重新同步数据之前,建议您备份目标库中的数据,以免数据丢失。
需要注意的是,这个问题可能不仅限于同步配置或者目标库结构等因素,还可能涉及其他因素。因此,建议您在尝试以上解决方案之前,先仔细检查日志文件,以确定问题的具体原因。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。