开发者社区> 问答> 正文

DTS报错BLOB/TEXT column 'xxx' used in key specifi...

已解决

DTS报错BLOB/TEXT column 'xxx' used in key specification without a key length

展开
收起
提个问题! 2024-06-11 19:09:04 31 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    该报错一般出现在其它数据库引擎往MySQL数据库迁移的场景下。
    • MySQL数据库支持的最大索引长度是3072字节,超出了就会报如下错误:
      Specied key was too long; max key length is 3072 byte.
    • 当MySQL中如果使用了BOLB、TEST或者其变体(如TINYBLOB)类型作为索引键的时候,必须指定一个索引长度,否则会报错如下:
      BLOB/TEXT column 'xxx' used in key specification without a key length
    如上报错可以考虑采用如下解决方案:
    方案一:
    删除或者修改源端索引长度,超长字段可以使用前缀索引,修改完成后再配置DTS任务。
    方案二:
    1、创建DTS任务,先进行结构迁移,把不包含长索引的表先使用DTS迁移到目标端,然后手动把比较长的索引所在的表手动在目标端创建。
    2、再配置DTS任务,这时因为第一步的时候已经把表结构迁移过去了,所以再次创建DTS任务,只勾选全量+增量即可。
    注意:采用方案二的话,后期在源端数据库创建新表,如是DTS迁移任务新表无法迁移到目标端,如果是DTS同步任务,需要手动在目标端创建该表,然后手动修改同步对象,把该表加上。

    2024-06-11 19:09:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS助力企业快速复制阿里巴巴异地多活架构 立即下载
DTS控制台一本通 立即下载
低代码开发师(初级)实战教程 立即下载