DTS同步数据到AnalyticDB MySQL时出现“modify precision is not supported”报错
更新时间:
问题描述
数据同步过程中,出现'id' is LONG type, Can't change column type to DECIMAL
或者modify precision is not supported, col=id, type decimal, old=11, new=21
报错信息。
问题原因
数据同步过程中,存在不支持修改的字段类型。
解决方法
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
对于修改字段类型的报错提示,可以通过以下两种方式解决问题:
- 如果同步任务是整个数据库的同步操作,可以在AnalyticDB MySQL中新建一张表,表名不同于报错的表,表结构和源表的表结构保持一致,通过使用
Insert Into Select
SQL语句将报错表中的数据写入新建表中,删除报错的表,然后通过Rename
将新表更名为报错的表名,最后重启DTS任务。 - 如果同步任务不是整个数据库的同步操作,则需要把这张表从同步对象中删除,然后重启DTS任务,等任务延迟追上后,再把表加入同步对象中重新同步数据。
更多信息
DTS同步数据到AnalyticDB MySQL时,关于如何修改源表中的字段类型请参见DTS同步数据到AnalyticDB MySQL是否可以修改源表中的字段类型。
适用于
- 云原生数据仓库AnalyticDB MySQL版
文档内容是否对您有帮助?