怎么取消批量删除任务

【 TiDB 使用环境】生产环境
【 TiDB 版本】
7.5
【复现路径】做过哪些操作出现的问题
执行了批量删除,删除某个表6月1日之前的所有数据。
BATCH ON id LIMIT 1000 DELETE FROM mg_control_inventory WHERE create_time < ‘2024-06-01 00:00:00’

【遇到的问题:问题现象及影响】
执行SHOW FULL PROCESSLIST后,发现没有在执行的DELETE语句,但是在管理后台上看,DELETE语句是在执行的,该怎么查到对应的任务呢

【附件:截图/日志/监控】

看不到 batch 语句执行吗 :thinking:

SELECT * FROM information_schema.cluster_processlist;
看看有没有呢

你的sql确认还在执行吗?正常执行的话SHOW PROCESSLIST;是可以看到的。


现在有了,但是我KILL掉之后,它一会有自动出现了,我想取消 批量删除那个任务怎么做呢


能看到了,但是我KILL掉之后,它一会又出现了

KILL TIDB <processlist_id>
是这么杀的?你为什么有多个?你开了几个窗口执行这个sql啊?

是不是循环任务执行的,先把任务停掉呢

就是要停这个任务,batch on执行的,找不到根任务在哪

KILL命令杀的,就一个窗口,删完后自己就又出来了

客户端 有循环脚本 不断发起请求? 比如找到(非tidb)客户端的进程删掉?
我之前用datax 写了个循环查询 的同步脚本。把python请求进程删了就可以了。 如果循环语句有100个,在tidb就得删100次。不知道有没有借鉴意义。

感觉有个调度线程,要找到调度线程kill掉才行

没有找到主进程吧

那你是用什么工具执行的这条sql,可能是你工具的问题,你找到工具进程给杀掉看下

select * from INFORMATION_SCHEMA.CLUSTER_PROCESSLIST查看,show不全

TiDB提供了一些系统表,可以帮助您监控和管理正在运行的任务。您可以查询INFORMATION_SCHEMA.cluster_processlist表来查看集群中所有TiDB实例上的进程列表。

INFORMATION_SCHEMA.cluster_processlist表

show processlist 只会显示你连接的tidb server节点上的任务,不完全。需要查找INFORMATION_SCHEMA.cluster_processlist
### TiDB 里面可以执行 kill 命令吗?

可以写循环脚本,批量删除。

在show processlist中的host字段的主机里面看看是怎么触发这条SQL语句过来的