取消执行DDL卡死

【 TiDB 使用环境】
生产环境
【 TiDB 版本】
7.5.0
【复现路径】
使用DBeaver给数据表添加索引
【遇到的问题:问题现象及影响】
偶尔出现给数据表添加索引时卡死的情况,然后通过ADMIN CANCEL DDL JOB 和 KILL TIDB QUERY命令对在执行任务取消后,提示成功但是进程一直时canceling状态
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

我看版本是7.5 加索引可能是mdl 锁导致的,可以看一下
https://docs.pingcap.com/zh/tidb/stable/metadata-lock#元数据锁的可观测性

看文档是要kill掉这个锁进程

可以重启以下 ddl owner 试试看,参考这个链接: https://docs.pingcap.com/zh/tidb/stable/sql-faq#定位-ddl-执行卡住的问题

先干掉进程锁试试

我遇到过这种问题, 多个TiDB节点的话把其他节点停掉只剩一个节点, 然后重启这个节点

找到了这个进程ID,KILL不掉

正式环境,不能随便重启啊。。。。

1.数据大不大。大的话,耐心等待。
2.一般时间与数据大小成正比。
3.创建需要时间,取消回滚时也需要时间。反向操作,谨慎操作。
4.cancel kill等操作也会加速心跳,荷尔蒙的分泌。

1.执行admin show ddl jobs;查看一下集群的ddl任务队列。
2.确认第一个任务是否为大表加索引的DDL任务

用tiup 重启所有的tidb server

重启一下试试

CANCEL能执行成功,就不是MDL的问题,可以看看当前DDL队列和当前运行的DDL是什么状态再做判断