TiDB Data Migration 黑白名单过滤,如何动态增减?

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.2.2
【复现路径】做过哪些操作出现的问题
我通过DM 从MySQL向tidb 进行增量同步数据,当时通过黑名单方式过滤一些表,现在我去掉一些过滤表:
block-allow-list:
ba-rule1:
do-dbs: [“thc_1125_abcd”]
ignore-tables:
- db-name: “thc_1125_abcd”
tbl-name: “ACT_"
- db-name: “thc_1125_abcd”
tbl-name: "QRTZ_

【遇到的问题:问题现象及影响】
问题:我如何动态将一些表从黑名单去掉,例如想让ACT_开头的表参加同步,应该如何操作?
【资源配置】
【附件:截图/日志/监控】

如何动态去掉黑名单某个条目,通过下面方式测试失败:
1、修改task.yaml
2、stop task
3、start task 新的yaml

各位大神谁有好的方法?

看到官方有文档,感觉很繁琐,部署删除重新创建同步:https://docs.pingcap.com/zh/tidb/stable/dm-faq#如何为已有迁移任务增加需要迁移的表

多起几个DM-worker,把任务粒度控制到最小,不需要同步就停止任务,需要再开启新任务

我们上游数据库实例中会有很多库,但是我们只同步某个库,如果启动多个worker,那就得拉取多个全量binlog。

报什么错?

报错没有记录,官方说也不行,但是官方这步骤,有点儿看不懂

来个大神给解释一下文档

文档的意思是你需要重新开一个全量任务对你新增的表单独做全量迁移。

为什么需要这样?你首先要理解 binlog 是一个流。现在你在运行的 DM task 已经流到了一个中间状态,比如 binlog999。这个时候你新增了一个需要同步的表 table1,它不会回溯 binlog999 之前的 binlog 的。但是在此之前,你的 table1 肯定是有数据的呀,这之前的数据就被丢掉了。所以你要重新开一个全量任务。

你可以在重新理解一下文档,有任何对文档改进的建议,可以直接提出~

好的,多谢

您好,大概步骤这样对不对?
一、现有同步任务信息:
任务名字:thc_1234_dev
对应数据源:thc_1234_dev
配置黑名单:不同步thc_data_* 的表

二、需求:
我现在想同步thc_data_* 的表,需要的步骤:
1、创建一个新的同步任务:thc_1234_dev_thc_data,thc_1234_dev_thc_data对应数据源:thc_1234_dev,配置白名单只同步thc_data_* 的表
2、停止任务thc_1234_dev和thc_1234_dev_thc_data并记录:binlog_name,binlog_pos
3、修改thc_1234_dev任务yaml添加如下内容:
syncers:
global:
worker-count: 16
batch: 100
enable-ansi-quotes: true
safe-mode: true
safe-mode-duration: “60s”
compact: false
multiple-rows: false
4、修改thc_1234_dev的binlog_name,binlog_pos为2步骤最小值
5、开启thc_1234_dev任务
6、检查syncerBinlog如果大于binlog_name,binlog_pos,则去掉safe-mode: true重启任务
7、thc_1234_dev_thc_data任务是否可以删除?

您好

不需要再创建一个任务,直接加就可以。

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