如何加速drainer同步

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】4.0.2
【操作系统】centos 7
【部署方式】部署了pump/drainer,用于tidb数据同步
【集群数据量】20TB+
【集群节点数】tikv 20+ pd3个
【问题复现路径】线上tidb数据通过pump/drainer 同步数据到mysql
【遇到的问题:问题现象及影响】
背景:tidb有多张大表的增量数据需要同步到mysql,pump/drainer资源(cpu 内存 io)没有瓶颈,mysql的cpu iops等也没有瓶颈。我们希望加快数据同步速度,想开两个drainer,并行同步tidb的表数据。比如tidb有10张表,表之间没有关联,我用两个drainer,每个drainer各自负责5张表同步在网络带宽,磁盘io,mysql cpu等都没达到瓶颈时,该方法可以加快同步速度么?
【资源配置】
【其他附件:截图/日志/监控】

1 个赞

补充一下,当前看drainer日志,drainer插入数据到mysql会经常出现死锁:
[“Exec fail, will rollback”] [query=“INSERT INTO d_msgcenter.t_relat_op_gz(addtime,app,msgid,status,storage_time,tag,tuid,uid) VALUES(?,?,?,?,?,?,?,?)”] [args=“[xxxxx]”] [error=“Error 1213: Deadlock found when trying to get lock; try restarting transaction”]
业务场景是一张大表会大量插入数据,请问在drainer侧有什么办法优化吗?比如按不同表并发插入,每张表只有一个线程插入,减少死锁机率

4.x 的 已经 eol 两年了~可以尽快升级~

用 ticdc 来同步就好了

多表拆成多个drainer任务会有性能提升的,我们是一个大表单独一个任务

分库分表

拆分多任务

提高带库及性能

intersting

兴趣是最好的老师

1 个赞

坚持同样重要

感觉cdc更合适啊

用 ticdc 来同步

有道理~~~