签到成功

知道了

CNDBA社区CNDBA社区

OceanBase OMS not support create table select as option 错误 解决方法

2023-10-08 17:17 571 0 原创 OceanBase
作者: dave

1 问题现象

OB 集群配置了2套OMS 同步:

1.OB 到OB 同步。
2.OB 到 MySQL 同步。

在OB源端通过CTAS 创建了一张表,然后OMS 同步异常,查看OMS日志,报错如下:http://www.cndba.cn/dave/article/131453

[ not support create table select as option, origin sql:/ ApplicationName=DBeaver 23.2.0 - SQLEditor / create table cndba.dave as select * from cndba.dave2 where 1=2

Caused by: java.lang.RuntimeException: table ambiguous, table:dave,db:ob.cndba

http://www.cndba.cn/dave/article/131453

2 问题分析

OB 用的是开源的版本,所以是MySQL模式。 在MySQL中,启用GTID后,也是不支持CTAS语法的,因为CTAS会生成两个sql,一个是DDL创建表SQL,一个是insert into 插入数据的sql。由于DDL会导致自动提交,所以这个sql至少需要两个GTID,但是GTID模式下,只能给这个sql生成一个GTID 。http://www.cndba.cn/dave/article/131453

但是在OB的MySQL 模式下,是可以执行CTAS 语法的,但是OMS 同步软件不支持,即使是目前最新的OMS 4.1.1版本。

3 解决方法

3.1 解决当前问题

因为当前已经触发了错误,需要通过跳表的操作来解决当前问题。

两个步骤:

http://www.cndba.cn/dave/article/131453

1.在目标端手工创建好空表。
2.在OMS 配置跳表。

建表操作省略,在OMS 配置文件中修改JDBCWriter.coordinatorFile.skipDdl 选项,添加如下内容:

http://www.cndba.cn/dave/article/131453

[“create table cndba.dave”]

然后重启OMS 同步任务。 然后OMS 就会恢复正常同步,因为这里只能控制ddl,后续的DML还是会继续同步过去。

http://www.cndba.cn/dave/article/131453

3.2 规避方法

虽然OB支持CTAS,但是在生产环境,尤其是涉及到OMS同步的情况下,还是禁止使用该语法:

http://www.cndba.cn/dave/article/131453

create table cndba.dave as select * from cndba.dave2 where 1=2;http://www.cndba.cn/dave/article/131453

可以将该CTAS 拆解为两部分:

1.create table 表A like 表B ;
2.insert into 表A select *from 表B ;http://www.cndba.cn/dave/article/131453

这样就不会影响到同步了:

mysql> create table cndba.ustc like cndba.dave2;
mysql> insert into cndba.ustc select * from cndba.dave2;http://www.cndba.cn/dave/article/131453

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2246
    原创
  • 3
    翻译
  • 554
    转载
  • 188
    评论
  • 访问:6919511次
  • 积分:4275
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ