导致任务失败的可能原因如下所示:
可能原因一:在同步或迁移任务中,源端和目标端的版本不一致或目标端的版本低于源端的版本。
例如,在迁移任务中,源端 MySQL 版本为 8.0,目标端 MySQL 版本为 5.7,由于 5.7 版本的 MySQL 还不支持执行 ALGORITHM=INSTANT
语句,因此造成迁移任务失败。
解决方案:建议保持源端和目标端版本一致或目标端版本高于源端版本。
可能原因二:目标端的数据库账号没有相关操作权限。
可能原因三:在任务执行过程中任意修改目标库的资源。
例如,同步任务执行过程中,在目标库中执行 DDL 操作,例如 DROP TABLE
,导致同步过程中找不到已同步的表格,从而导致任务执行失败。
解决方案:在任务执行过程中,请勿对目标库进行任意操作。您可以在数据库工作台 DBW 的数据库审计查看操作记录,定位分析问题。详细信息,请参见数据库审计管理。
可能原因四:在任务执行过程中源端依赖的 Binlog 日志被删除,由于 Binlog 的缺失导致任务执行失败。
解决方案:在任务执行过程中,请勿删除源端的 Binlog 日志。若不小心删除了源端的 Binlog 可下载备份的 Binlog,通过上传日志恢复任务执行。
可能原因五:在源端或目标端为公网自建、ECS 自建或专有网络时,如果任务执行过程中源端或目标端的 IP 地址变动,则会导致任务执行失败。
解决方案:在任务执行过程中,请勿修改源端或目标端的 IP 地址。
可能原因六:源端或目标端宕机,导致任务执行失败。
ROW_FORMAT=DYNAMIC
)、使用部分索引、调整字符集、进行索引压缩和重新设计表结构等方式解决索引长度超过限制的问题。同时在创建任务时,忽略 Warning 类型的预检查项。