查询一下结果看看
query-status
命令的查询结果、任务状态与子任务状态。
查询一下结果看看
query-status
命令的查询结果、任务状态与子任务状态。
是啊,但是没有数据。
贴子问题里面有写
咦,奇怪,你把test.k
这个表挪到test1.k
,DM配置文件里的值也改成test1.k
试下。我也做过类型的任务,是支持多个库的正则的
建议把router,和filter都加上,别默认了。一开始可以搞的简单点就配一个库,看是否能同步。
再不行就照搬文档里面的配置。
bug的可能性很低,因为太基础。
dm排查的难度,不是一个环境真的很难。全链路任何一个点有问题。都会导致不能同步。
我试了这种写法是可以的
数据能迁移成功吗?
能迁移成功
不能吧?`do-dbs: [“clover”,“db01”]
do-tables: # 需要迁移的上游表的白名单。
迁移 “clover”,"db01"这两个全库。。test库下的k表。`
clover、db01、test.k都迁移成功?
我试了你上面的配置,不行,也没有任何错误,用以下的配置是可以的
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: "*"
结论出来了。dm还是有bug
do-dbs与do-tables不能同时出现。否则只有do-tables生效。你上面的这种写法相当于没有do-dbs。
这几天我一直想搞清楚这个规则是啥,你部署worker的时候把log-level: debug或者edit-config,会打印block_allow_list的信息如下:
[2023/09/06 00:03:17.702 +08:00] [DEBUG] [block_allow_list.go:12] ["start to filter databases"] [task=testdm] [unit=dump]
[2023/09/06 00:03:17.702 +08:00] [DEBUG] [block_allow_list.go:23] ["ignore database"] [task=testdm] [unit=dump] [databases="[db1,information_schema,mysql,performance_schema,test]"]
[2023/09/06 00:03:17.770 +08:00] [DEBUG] [block_allow_list.go:33] ["start to filter tables"] [task=testdm] [unit=dump]
[2023/09/06 00:03:17.770 +08:00] [DEBUG] [block_allow_list.go:55] ["ignore table"] [task=testdm] [unit=dump] [tables="tables list\n\nschema hhm :[b, t1, t2, t3, t4, ]"]
你这个结论不对呀。
可以参考下这里。 https://docs.pingcap.com/zh/tidb/v7.3/dm-block-allow-table-lists#过滤规则
黑白名单过滤是先 schema 再 table 过滤的。
文档与我们正常的理解一致,也符合正常思路。但实验结果不是这么回事。你可以实验 一下。