dm 任务迁移

【 TiDB 使用环境】生产环境
【 TiDB 版本】v4.0.0
【复现路径】无
【遇到的问题:问题现象及影响】
我目前有两套dm集群(dm-A、dm-B)
当前dm-A上跑的任务,我想迁移到dm-B 上,不知道需要如何操作。烦请各位大佬帮忙推荐一下操作步骤

参考一下这个
TiDB Data Migration 导出和导入集群的数据源和任务配置 | PingCAP 文档中心

这个只是导出的数据源和任务配置。但是重新把这个任务导入到dm-B里面的时候会从头把数据再拉取一遍,不是增量取拉的。

1 个赞

确实是

应该直接 stop task/start task 就可以:

  1. 暂停/停止 dm-A 的任务
  2. 开启 dm-B 的任务,模式改为仅增量,最好不要修改之前的任务配置,不要 remove-meta

如果实在不放心,可以

  1. 暂停/停止 dm-A 的任务
  2. 记录当前同步的 binlog 点位为 binlog-A
  3. 开启 dm-B 的任务(仅增量),并设置从 binlog-A 开始任务

参考文档:https://docs.pingcap.com/zh/tidb/stable/task-configuration-file-full#功能配置集

meta:                                   # `task-mode` 为 `incremental` 且下游数据库的 `checkpoint` 不存在时 binlog 迁移开始的位置; 如果 checkpoint 存在,则以 `checkpoint` 为准。如果 `meta` 项和下游数据库的 `checkpoint` 都不存在,则从上游当前最新的 binlog 位置开始迁移

如果需要更保险一点,你还可以把 binlog 点位提前一点点,然后设置一下 safe-mode-duration,设大一点

后来我就是这样做的,但是没有设置safe-mode-duration,我直接拿的dm_meta里面的位点,其实后来想一想,可以直接拿dm-A任务里面的binlog位点就可以了

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