【TiDB 使用环境】生产环境
【TiDB 版本】v6.5.3
【操作系统】
【部署方式】机器部署
【集群数据量】
【集群节点数】
【问题复现路径】无
【遇到的问题:问题现象及影响】
应用循环执行多个语句,发现有语句执行时间过长,执行kill之后,在cluster_processlist中仍然能看到,并且Time字段一直在增加。这个版本已经支持全局kill了。
这种情况下,语句被kill掉了么?如果被kill掉了,为什么还在cluster_processlist里?如果没被kill掉,如何终止这些sql?
这个问题如果是别人问,我可能会说试试 kill tidb,连的节点不对之类的。
孔大师问的话,必有蹊跷!
什么版本,这个和 mysql 一样,都需要走到指定位置才可以 kill。
1 个赞
如果这样的话,kill就没有意义了吧。
线程类的数据库是要走到安全的埋点地方才能 kill。
进程类的数据库直接操作系统 kill 进程。像Oracle。直接是操作系统杀进程,然后 pmon 去做清理。postgresql 类似。
5 个赞
运维中经常碰到类似的问题,我们一般最后都是重启节点解决。
额。。。生产环境不能随便重启啊。。。
tidb是线程,不是全局kill的
官方现在支持全局kill了,看上面的文档
我的经验就是一直等,时间不可控的
好吧,那只能考虑升级了,也可能是这个版本的小bug
升级吧,有一些 kill 不掉的 bug,比如落盘的 sql,有视图的 sql 记不清了。
升级吧。653 第三位可以考虑升级到比较新。
2 个赞
好吧,看来确实是需要升级了。
具体哪个版本修复了全局kill不掉的情况?
好像6.5。12 版本更好用些,修复了一些bug
1 个赞
准备升级v7了。
不是说有bug吗,哪个版本修复的这个bug
1 个赞