故障现象:

使用DTS同步链路将数据从RDS同步至自建MySQL,同步延时高达数小时

排查经过:

首先,联系阿里云DTS后台,后台同学反馈,目标数据库RT(响应时间)过高。即,MySQL数据库无法及时处理RDS同步过来的数据,猜测可能是由于主机资源不足导致

使用top命名查看MySQL宿主机CPU使用情况,发现主机整体CPU消耗并不高,说明主主机资源关系不大,但MySQL进程占单CPU线程超过100%,问题出在MySQL数据库程序本身

接着,通过 SHOW PROCESSLIST命令查看MySQL的进程列表,发现部分SQL语句执行耗时高达数分钟,且事务比较密集

EXPLAIN对应SQL语句,发现使用了全表扫描(50多万行),未引用索引

又接着,用SHOW CREATE TABLE命令查看相关表,无索引

问题基本定位,为该表创建索引,DTS恢复毫秒级同步延时,故障解决

PS: 阿里云RDS果然强大,优化查询器后性能直接碾压社区版MySQL。