文档首页/ 数据复制服务 DRS/ 故障排除/ 失败案例/ MySQL->MySQL实时迁移和同步/ 全量阶段失败报错,关键字“Invalid GIS data provided to function st_geometryfromtext'”
更新时间:2024-05-20 GMT+08:00
分享

全量阶段失败报错,关键字“Invalid GIS data provided to function st_geometryfromtext'”

场景描述

全量迁移或同步期间DRS任务报错,日志提示信息:An error occurred in the process DATAMOVE, caused by: apply event=[type=table_data, shard_id=0, batch_index_in_shard=1, table_name=%s, record_num=1] occur error, msg=apply data of table=%s failed: Data truncation: Invalid GIS data provided to function st_geometryfromtext.

可能原因

跨版本迁移MySQL地理类型数据时,目标数据库与源数据库合法地理类型检查规则不一致,常见于5.6版本迁移至5.7、8.0 版本。源数据库地理类型数据在目标库版本中为非法格式,导致使用DRS在目标库插入数据时报错。

例如,使用POLYGON表示多边形时,5.7及以上版本会校验坐标点个数,至少需要3个点构成有效多边形。而在5.6版本中不做校验,单个坐标点表示的多边形也能正常插入。

解决方案

  • 方法一:
    1. 按照目标数据库版本格式要求,修改源数据库中不满足要求的地理类型数据。
    2. 修改完成后,在任务列表中,单击任务对应操作列的“续传”,重新提交任务。
  • 方法二:
    1. 重新创建DRS任务,对象选择时不勾选报错的表。
    2. 在迁移完成后,导出该表数据,修改为目标库合法格式后,手动迁移至目标库。

相关文档