dm数据同步创建任务的时候,能否指定任务运行在特定的worker节点上呢?

dm 组件版本v1.16.0
dmctl 组件版本 v8.2.0
tidb集群版本v7.1.0

如题所示,实际有个场景是同步MySQL 分表数据到TIDB集群,但是分表数据量超级大,目前空余的两个节点磁盘都不足,想新增第三个dm-worker节点给挂载超大盘,然后 希望在启动 dm同步任务的时候,能让任务运行在新怎的第三个dm-worker节点上,如何实现?

好像没有指定节点运行的配置方式…

换个思路,你把另外两个节点下线,只留这个,先把任务跑起来,在启动另外两个节点… :see_no_evil:

可以的,任务是跟着 source 走的,可以通过 transfer-source 将 source 转移到特定 worker,这样任务自然也就跟过去了

2 个赞

如果可以的话,什么时候dm能和seatunnel一样,复用binlog会话 :thinking:

会话没法复用,但是binlog要复用还是有些办法。
可以打开relaylog。
https://docs.pingcap.com/zh/tidb/stable/relay-log#dm-relay-log

可以把目标机器的binlog拖到本地在解析。这样目标机器的binlog只读一次,大幅降低目标机器的io。
坏处是,relaylog会导致同步的延迟上升一些。

1 个赞

现在就可以啊,只要开启 relay-log,不管对应 source 上多少个 task,在上游 MySQL 上只会有个 binlog dump 进程的

:joy:没怎么研究过这块,前段时间看到seatunnel

谢谢,这个思路确实是可以的

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