dm2.0rc check task 报错:source mysql-replica-01 in deployment configuration not found

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0.2
  • 【问题描述】:试用dm2.0 rc,按照老经验配置master,worker,task文件,结果check的时候提示 source mysql-replica-01 in deployment configuration not found…

看下上游的配置是否通过 dmctl 创建了 mysql-replica-01 的 source
https://docs.pingcap.com/zh/tidb-data-migration/v2.0/quick-start-create-task#编写-source-配置文件

为毛上游mysql的表只要没有设置主键就通不过check?

  1. 请问是否有合库合表? 具体配置是什么? 可以上传下配置文件
  2. 麻烦注意一下发言

从你的报错本身看到是因为没有主键或者唯一索引导致的 check task 失败。

另外在 dm 中还有如楼上所点明的限制

PS:DM 还会检查上游表中是否存在主键或唯一键约束,在 v1.0.7 版本引入。

https://docs.pingcap.com/zh/tidb-data-migration/v2.0/precheck#检查内容

假如不是分库分表的情形,只是简单的单一数据库、表,那么表如果没有主键的话可以通过检查吗?我在老版本的dm里上述情景是ok的

OK,上面已经解释了,可以看下,只是阐述另一种可能

解决了checktask的问题以及带来另一个问题:
1、我仅仅是想把tibd作为mysql的后端,不涉及分库分表。
dm-2.0 rc任务配置文件模板默认是没有ignore-checking-items的。而文档说这个功能是分库分表时才用得上的…但是我没有分库分表啊… 可是总是check不过,只好把这个配置加上:ignore-checking-items: [“all”](我第一次用的是ignore-checking-items: [“auto_increment_ID”],但是还是通不过check只能用all)。这样check就通过了。----困惑,这个功能不是针对分库分表的嘛?
2、通过以后拉数据,有一张单表5000w记录,结果提示 “RawCause”: “packet for query is too large. Try adjusting the ‘max_allowed_packet’ variable on the server”,这张表没拉过来(另一张小表没问题)。文档说需要在tidb和loader的配置文件中增加max-allowed-packet=128M,可是dm已经集成了loader,不知到在哪里设置这个参数哦

  1. check task 失败的信息反馈下,忽略 check task 某些检查不单单针对分库分表
  2. 通过 set global 设置 tidb mysql 变量

mysql单库单实例单表情况下使用dm2.0
rc将tidb作为后端,task文件如果没有设置ignore-checking-items 参数,则dm check task 失败的信息在上面这个帖子:

已经给出解释了,是还有不理解的地方吗,可以提出来,我们看下如何解答。
dm v1.0.7 开始,check task 会检查表是否存在 primary key 或者 unique key。
官方文档也在上面

主键检查属于“table_schema”,检查上游 MySQL 表结构的兼容性”

可以在下面这个链接里,页面搜索一下“DM 还会检查上游表中是否存在主键或唯一键约束,在 v1.0.7 版本引入。”

https://docs.pingcap.com/zh/tidb-data-migration/dev/precheck#检查内容

主键检查这个问题ok了。check-task略过主键检查,可以全量同步上游数据了。带来问题是:上游mysql一张没有主键的表修改了记录,下游tidb不会同步。对比一下上游mysql另一张表是设置主键的,则无此问题。

设置了 table schema 忽略此检查不能同步数据吗?

主键和唯一索引这块不用过分纠结,尽量满足即可,如果不设置忽略可以通过 query status 报出来添加即可

灰常奇怪。是不是和设置了 table schema 忽略检查主键我不知道,也许没有关系。但是就是不能同步更新。
然后我把该表记录清空,再插入几条数据,把dm_meta这个库的记录删除重新启动任务,再去更新这张表就可以同步了…
但是worker日志有报错,worker日志如下:


t2就是上游那张倒霉的没有设置主键的表

看下你的 task 配置。

task文件是从portal那里生成然后修改的。我从程序提供的模板文件修改生成新的任务文件,同样出现error。但是不影响数据同步。
我贴下新的任务文件出现的error,是关于某条记录的。但是这条记录同步是没问题的。整张表同步都没问题。

根据报错信息 invalid connection 以及 errcode 可以参考官网介绍来排查

https://docs.pingcap.com/zh/tidb-data-migration/stable/error-handling

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。