DM的mydumpers选项不生效

为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:

  • 系统版本 & kernel 版本
    centos7

  • TiDB 版本
    3.0.4

  • 磁盘型号

  • 集群节点分布

  • 数据量 & region 数量 & 副本数

  • 问题描述(我做了什么)
    1、task配置


    2、» start-task task/db_test.yaml 启动之后,看work的日志,mydumper没有备份我指定的库:
    –regex=“mall_order.|mall_swo.|saos_crm.|saos_op.|saos_tur.*”
    下面是worker节点的日志,tables-list我没有指定,不知道是从哪里读取的

  • 关键词

在补充一下: 我上游mysql里面有多个库,我只同步需要的5个库,其他库不同步,我看worker节点日志,其他库也同步了,我了解的我配置了同步的routes,其他默认应该就不是不同步的,是还需要我配置那些不同步嘛?应为不同步的库比较多,后面可能还会加,这个配置起来就比较麻烦

  • regex 内容尝试:’^test.|^test1.
  • 只想同步指定的库,可以尝试配置
black-white-list

上面提到的两点都尝试了,还是不行,下面是我的task的yaml 配置,按这个配置,task启动正常,并且运行正常,但是没有同步我配置的数据库,


task的状态:

从worker节点上的日志看,像是没有读取到task的配置任务:

“上面提到的两点都尝试了,还是不行” 不行的原因是什么,或者有没有什么报错

上面我贴了worker节点日志,任务启动后,啥都没有干,mydumer都没有执行。

请将你修改后的配置发一下,从日志来看是没有想同步的内容

这个就是修改后的配置

extra-args: "--regex 'mall_order|mall_swo|saos_crm|saos_op|saos_tur'"  
#extra-args: '--regex="^mall_order.|^mall_swo.|^saos_crm.|^saos_op.|^saos_tur."'  
#extra-args: '--regex="mall_order.*|mall_swo.*|saos_crm.*|saos_op.*|saos_tur.*"'  

这几种写法都试了,都不行

附件是dm-woker的日志
dm-worker.log (79.3 KB)

根据咱们这边需求,建议使用 黑白名单过滤,配置 do-dbs。

DM 在 1.0.2 版本,mydumper 的参数可以根据 black-white-list 过滤规则自动生成。如果是 1.0.2 之前的版本,mydumper 参数还需要手动配置。
以下是 1.0.2 新特性的一些内容。

https://asktug.com/t/dm-v1-0-2/1676/

我的dm的版本是v1.1.0,这个应该是最新的吧,并且我也配置了 black-white-list ,不生效呢 Release Version: v1.1.0-alpha-30-g333b750 Git Commit Hash: 333b7509bda5028f2effc6d52c29f8c1146af13b Git Branch: master UTC Build Time: 2019-11-05 10:14:49 Go Version: go version go1.12 linux/amd64

你这应该是下载的 最新版本,最新版本目前还不稳定,目前 DM 的版本基本上是 v1.0.x,使用 1.0.2 版本试下,如有问题,我们再一起看下。另外,mydumper 的正则可以手动测试一下。

1、我降到1.0.2试试
2、直接用mydumper备份我那样写是可以的,用dm就不行了

下图是我task的配置,我新部署一个1.0.2版本的新dm集群,这个task是正常的

但是我原来那个dm集群升级到1.0.2,我的其他单个库同步的任务都正常,就这个同步多个库的任务不正常,我把woker节点重新deploy了也不行,任务连 mydumper都没有执行,附件是woker的日志
dm-worker.log (296.3 KB)
image

1、image 这个 task 配置,在 dm-worker.log 的日志中可以看到如下报错,请先检查下上下游的表对象:

2、使用 query-status ${task-name} 看下状态

1、任务连 mydumper都没有执行,所有目标库里面肯定没这个表, 1.0.2版本的dm是自己会建下游的库的,不需要手动建,我的task-mode是all,应该会执行mydumper、loader、syncer,完整的流程,现在是mydumper这个第一步流程都没执行
2、

1、从报错截图看当前的 task 处于增量同步阶段,在增量同步时发现下游没有目标表所以出现相关报错:

2、你那里清理 dm task 的操作具体是怎么操作的?建议的清理步骤:

1)停止 task

2)清理下游目标表信息

3)新建一个 task,拷贝当前的 task 文件内容到新建文件,并且修改 name 为 非 db_test 的其他字符,task-mode 为 all

或者

继续沿用现在的 task 文件,但是在配置文件中设置 remove-meta 为 true 且 task-mode 为 all。参考链接为:
https://pingcap.com/docs-cn/stable/reference/tools/data-migration/faq/#如何重置数据同步任务

这两种方法都试了不行呢,
1、stop-task执行成功
2、清理下游目标表信息—》下游库都没有建出来,所以这个也没的清理
3、3的操作如下
这是我的task配置


任务启动正常
image dm-worker.log.bak (58.0 KB)

看下下游 dm_meta.office_test_loader_checkpoint 和 dm_meta.office_test_syncer_checkpoint 这个张表存在吗?里面包含什么内容?