问题描述

将业务库数据全量迁移过程中有一张业务表结构和数据迁移报错:ERROR:Failed to retrieve table column type!(2 retries)

源端和目标端数据库类型:MySQL8.0.28 -- > ksql(KingbaseES)V008R030C011PSI008

分析过程

kdts报告中错误信息

kdts报告中查看表结构

推测是最后一列导致

目标端sql_mode参数查看
--连接数据库
\c 业务库  业务用户

--数据库级
show sql_mode

--用户级  必须是数据源中配置的用户而不是kdts web界面对选选择属主的用户
\c select current_setting('sql_mode');   --必须加双引号

解决办法

查看kdts中配置的目标端数据源界面的用户

注意:必须是上图中数据源管理-->目标数据库中的用户,而不是下图中迁移任务中选择模式中的目标属主

更改kdts中配置的目标端数据源界面的用户sql_mode权限

注意:务必先查后改,养成好习惯

--配置前查看
\c 业务db user
select current_setting('sql_mode');

--更改目标端数据源界面的用户sql_mode权限
alter user username sql_mode=ONLY_FULL_GROUP_BY,STRICT_ALL_TABLES,ANSI_QUOTES;

--配置后查看
\c 业务db user
select current_setting('sql_mode');

更改kdts中配置的目标端迁移参数自定义标识符

再次迁移

再次迁移后成功

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐