【BUG?】DM迁移数据,没有出错,但目标库没有数据

【 TiDB 使用环境】 Poc
【 TiDB 版本】7.3

dm/v1.13.0
mysql5.7.30
CentOS Linux release 7.5.1804 (Core)

需求:迁移源 “clover”,"db01"这两个全库。。test库下的k表。

如图33编写yml、或者图66页面配置的方式复现问题。


迁移源 “clover”,"db01"这两个全库。。test库下的k表。

block-allow-list:
  bw-rule-1:                              # 名称
    do-dbs: ["clover","db01"]
    do-tables:                        # 需要迁移的上游表的白名单。
    - db-name: "test"              # 需要迁移的表的库名。
      tbl-name: "k"          # 需要迁移的表的名称。


折腾的第二天,小伙伴跟我说用网页向导。网页向导生成的配置文件一样,但同样是没有任何错误,数据没有迁移。


详情为什么没有

:roll_eyes:
另外,不支持多个库迁移吗?

人傻了吧
迁移两个库
tables里却写test的 l表

导错表了么

应该是阻止的吧

do-dbs: ["clover","db01"]
do-tables:                        # 需要迁移的上游表的白名单。
- db-name: "test"              # 需要迁移的表的库名。
  tbl-name: "k"          # 需要迁移的表的名称。

迁移 “clover”,"db01"这两个全库。。test库下的k表。

把test也加到白名单里试试

do-dbs写了多个(不过滤table)就没有数据了。

do-dbs: [“test”,“clover”,“db01”]
do-tables:

  • db-name: “test”
    tbl-name: “k”
  • db-name: “clover”
    tbl-name: “*”
  • db-name: “db01”
    tbl-name: “*”

要这样写吧,符合你的 迁移 “clover”,"db01"这两个全库。。test库下的k表。

mysql-instances:
-
  # 上游实例或者复制组 ID。
  source-id: "mysql-01"
  # 需要迁移的库名或表名的黑白名单的配置项名称,用于引用全局的黑白名单配置,全局配置见下面的 `block-allow-list` 的
配置。
  block-allow-list: "bw-rule-1"


# 黑白名单全局配置,各实例通过配置项名引用。
block-allow-list:
  bw-rule-1:                              # 名称
    do-dbs: ["db01","clover","test"]
    do-tables:                        # 需要迁移的上游表的白名单。
    - db-name: "test"              # 需要迁移的表的库名。
      tbl-name: "k2"          # 需要迁移的表的名称。
    - db-name: "db01"
      tbl-name: "*"
    - db-name: "clover"
      tbl-name: "*"

tiup dmctl --master-addr 10.70.20.57:8261 stop-task task1.yaml

tiup dmctl --master-addr 10.70.20.57:8261 operate-source stop source1.yaml

tiup dmctl --master-addr 10.70.20.57:8261 operate-source create source1.yaml

tiup dmctl --master-addr 10.70.20.57:8261 start-task task1.yaml

tiup dmctl --master-addr 10.70.20.57:8261 query-status task1.yaml

一样没有出错,没有数据。

也不行

排查一下dm使用的用户是否有相应的源数据库的权限

查看一下任务的详情信息

有权限。root用户的,没有权限会出错。

迁移前你做了这些检查了吗?https://docs.pingcap.com/zh/tidb/stable/dm-precheck

做了。 这是一个bug.

配置错拉

哪儿?

你到上游MySQL上,看下DM用户的权限是什么?有没有包含test库

纯配置而言,其实是对的。

有的。问题里面就写了。