allens
(Allens)
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.0
- 【DM 版本】:v2.0.0-rc
- 【问题描述】:通过DM同步MySQL到TiDB,发现速度很慢,
task.yaml中syncers配置如下:
syncers:
4303-replica-01:
#worker-count: 4
worker-count: 24
#batch: 100
batch: 200
max-retry: 100
safe-mode: true
但是看起来还是只有一个worker线程在实际工作:
query-status结果如下:
麻烦帮忙排查一下,谢谢。
可以看一下 DM 监控的 binlog sync 的延迟情况是什么样的,query-status 这个显示应该还不够准确,可以通过手工查询确认一下。
allens
(Allens)
4
allens
(Allens)
5
已发,是不是和开启safe_mode:true 有关系,而且单线程replace into,效率也是极低
来了老弟
6
将 safe_mode: false 再看下同步速率
收到。“只有一个worker线程在工作”,怀疑是目前的一个bug,key索引导致dml无法并行执行。我们会在下个版本修复。
除此以外1.0版本应该没有这个问题,如果方便的话可以试试旧版![:sob: :sob:](https://asktug.com/images/emoji/apple/sob.png?v=12)
allens
(Allens)
8
试过,这样的话还是会报:“RawCause”: “Error 1062: Duplicate entry ’ com.tmgp.* ’ for key ‘PRIMARY’”
这个错误。
allens
(Allens)
9
了解,切换旧版本的话当前在同步的工作需要重新开始吧?
小王同学
10
可以暂停数据同步任务,确认当前停止同步的位点后,部署 DM 1.0.x 版本,开启同步任务时,配置增量同步,从记录的位点开始同步也可以。
allens
(Allens)
11
好的,多谢,因为这个DM涉及多个实例,这边先评估一下这个方案