DM任务处理讨论,实时同步mysql数据库

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:TiDB 3.0.5 DM:1.0.3
  • 【问题描述】:目前DM要采集多个业务系统的mysql数据,每个业务系统的mysql库中会有多个数据库实例(少了十几个,多的将近100个),现在处理方法是每个mysql实例都创建一个task,这样就导至dm集群当中有很多个task在实时同步,TiDB集群那边连接数也非常高,导致TiDB的资源都被DM Work给占用的差不多了。
    针对这种情况将同一业务系统的多个mysql实例放在一个task中,这样会不会节省TiDB的资源?
    另外如果都放在同一个task当中,后期可能会造成一个库同步有问题,其他库也同步不了了。
    这些比较纠结,目前有什么好的经验么?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

你好,

建议一个 mysql 实例创建一个 task 任务,tidb 这边没有连接数限制,但是如果为了降低 dm 在同步阶段对 tidb 资源的占用

可以调节不同阶段的同步速率

在 tidb 前端增加 haproxy 作为负载均衡使用。

也可以扩容 tidb 和 tikv 增加集群处理能力。

1 个赞

那就使用一个mysql实例创建一个task任务的方法
调节频率这个办法可以偿试,将及时性不高的同步改为晚上,及时性高的改为白天。
tidb前端已经加了负载均衡,但可考虑再加两台,一共4台tidb server,两台做均衡给dm用,两台给业务应用使用
tidb和tikv扩容这个方法可以当最后手段。
谢谢回复

:handshake:

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