你到集群的Dashboard 监控可视化页面上,看看问题时段里的SQL语句分析和慢查询情况,把截图贴上来
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。
这个语句排查一下它的慢查询情况,还有它所在租户(用户)的资源绑定情况,贴出来大家一起分析
资源管控功能是通过用户账号进行管理的,实现多租户功能特性。所以,楼主创建了资源组后,还需要绑定用户到资源组。
还可以通过show命令查看已经应用的具体内容。
1.三台机器部署这么多节点,几乎不可避免会有资源挤兑的问题。请确认一下出现问题时,机器的各项资源使用情况。
2.确认集群热力图情况,在Dashboard 面板可以查看。
3.针对访问慢的语句,重点分析慢查询情况。
排查集群访问日志和监控图表,对上面几个方向一一确认一下。
这个确实是有点猝不及防,TiCDC的同步原理是获取tikv的行变更来进行同步,上游修改表字段类型的时候会触发数据重新调整,应该是这个过程导致了整个表的KV数据都有变更,所以重新同步了一遍。这个在新版本应该是修复了 。
从 Lock Resolve OPS这里可以确认执行任务时遇到的锁比较多,导致内部 backoff 重试次数多,这个过程会相比较耗资源,业务侧也会感知到SQL变慢的。
现在集中看看为啥要锁这么久,是读取数据的过程比较慢,还是要检查的MVCC版本比较多。
楼主重点搜索和排查下tikv面板 和 tikv的日志情况,。
从热力图看着是有比较集中的写情况。
可以到 Grafana的 TiDB 面板,查看下 KV Error 和 DistSQL 面板的情况,检查锁冲突或者backoff是否较多。
楼主看看Dashboard的热力图情况呢,贴下集群访问的热力情况。
prewrite 是2PC的提交阶段,这个阶段主要是在做MVCC的多版本检查、以及是锁冲突检测,说明这个事情花了较多的时间。
楼主先去排查下集群的Dashboard和TiDB 相关的 Grafana面板,应该可以收集到一些有用的信息
sql_mode 一般是检查数据是否符合要求,如果设置了在不符合时会报错,不设置就会打印warning而不报错,但是数据会被截断插入。如:
mysql> select version();
+--------------------+
| version() |
+--------------------+
| 5.7.25-TiDB-v5.4.0 |
+--------------------+
1 row in set (0.00 sec)
mysql> show variables like '%sql_mode%';
+---------------+-------…
出现这个问题,一般都是实际数据长度不符合表结构的定义长度所导致的。
鉴于楼主你这个是测试环境,看看能否在原表再插入相同的字段数据,先尝试复现问题。
也可以把表和数据脱敏后提供上来,大家一起看看。
确认下新建表 和与原表的表结构,确认这两个字段的定义情况是否一致
多并发同时访问一行数据,业务设计就不合理,看看如何优化访问方式吧