如何终止MariaDB中处于Killed状态的回滚进程?
如何终止MariaDB中处于Killed状态的回滚进程?
遇到这种标记为Killed却迟迟不结束的回滚进程,确实挺闹心的,我给你分享几个实际可行的解决思路:
先别急着强制终止,先确认进程是不是真的没在工作:有些大事务的回滚(比如你提到的大insert操作)需要处理大量的undo日志,表面看进程状态没变化,但后台其实在默默干活。你可以观察服务器的CPU、磁盘IO使用率,或者隔10-15分钟再查一次
show full processlist,看看Time字段是不是在增长,判断有没有进展。如果确定进程真的卡死了,试试不同的KILL参数:常规的
KILL 22301639;没用的话,分别执行KILL QUERY 22301639;和KILL CONNECTION 22301639;——前者终止当前执行的查询,后者直接断开连接,有时候能触发进程退出。要是上面的方法都不管用,那只能考虑重启MariaDB服务了:不过要注意,重启后数据库会自动恢复未完成的回滚操作,所以重启后还是需要等回滚完成,但有时候重启能打破进程卡死的状态,让回滚正常推进。重启前一定要确认没有其他正在运行的关键业务,避免造成额外影响。
另外提醒一句,以后执行这类大操作前,最好先做数据备份,尽量拆分大事务,减少回滚的风险和耗时。
备注:内容来源于stack exchange,提问作者theking2
相关产品推荐
相关产品推荐

