开发者社区> 问答> 正文

不同的数据库实例往同一数据库实例操作DDL、DML报错

第一个数据库实例A,往数据库实例D操作,可以成功 后面的数据库实例B、C等,往数据库实例D操作报错

pid:9 nid:1 exception:setl:com.alibaba.otter.node.etl.transform.exception.TransformException: no support ddl for [test2.test_100] to [test.test_100] , sql :CREATE TABLE test_100 ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) DEFAULT NULL, currDate datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 pid:9 nid:1 exception:setl:com.alibaba.otter.node.etl.transform.exception.TransformException: no support ddl for [test2.test_100] to [test.test_100] , sql :DROP TABLE test_100 /* generated by server */

原提问者GitHub用户 wangzisong21

展开
收起
大圣东游 2023-06-21 16:29:58 32 0
2 条回答
写回答
取消 提交回答
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    根据您提供的错误信息,看起来是由于数据库实例之间的表结构不匹配导致的错误。具体来说,您尝试在数据库实例D上执行了一个DDL语句(创建或删除表),但该DDL语句的目标表结构与源表结构不匹配。

    错误信息中的no support ddl for [test2.test_100] to [test.test_100]表明在将test2数据库中的test_100表同步到test数据库中时出现了不支持的DDL操作。

    可能的原因是数据库实例D上的表结构与其他数据库实例上的表结构不一致,例如表的定义、列的顺序或数据类型等方面存在差异。

    要解决这个问题,您可以尝试以下方法:

    1. 确保数据库实例D上的表结构与其他数据库实例上的表结构保持一致。您可以手动检查表的定义、列的顺序和数据类型等,并进行必要的更改。

    2. 如果您使用的是数据库复制工具(如阿里云的数据传输服务DTS),请确保配置正确,并检查是否存在任何同步规则或过滤器,可能会导致DDL操作被拒绝。

    3. 如果您使用的是自定义的同步脚本或工具,请检查脚本或工具的配置,确保正确处理DDL操作,并确保目标表的结构与源表的结构匹配。

    如果问题仍然存在,请提供更多关于您的环境和操作的详细信息,以便我能够提供更具体的帮助。

    2023-06-26 23:20:23
    赞同 展开评论 打赏
  • DDL只支持源和目标完全一致,包括库名和表名

    原回答者GitHub用户wangzisong21

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

相关电子书

更多
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载