mysql 中大表alter已经好几个小时了,进程也杀不掉,一直锁表,请问怎么办?

mysql 中大表alter已经好几个小时了,进程也杀不掉,一直锁表,请问怎么办?,第1张

是在 什么机器上 运行 MySQL服务的?Linux?Windows?

建议 将 相关 该表使用的,一律 关闭,如 运行web程序(正在查询、删除该表数据),备份终止,正在 运行 删除该表 的窗口等,然后再进行解锁

我跟你碰到类似的情况,重新查了好多次,用alter语句杀了好几次还是杀不掉。最后是通过把该用户的所有连接会话都调出来。通过PL/SQL的工具---->会话 ;然后把通过JDBC连接池的会话中带insert 的会话手动关掉就行。(我是提前查明是通过kettle插入数据库数据时发生锁表,只是把程序关了还是无法解锁,然后知道kettle程序是通过JDBC连接池发起的会话)

尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉。

但通常情况下,出现死锁时,想通过命令行或者通过oracle的管理工具删除有死锁的session,oracle只会将该session标记为killed,但无法清除掉,往往需要通过第二步在 *** 作系统层级进行删除。

altersystemkillsession29,57107。--删除进程,如已经删除过,则会报ora-00031的错误,否则oracle会将该session标记为killed状态,等待一段时间看能否会自动消失,如长时间消失不掉,则需要做后续步骤。一些ORACLE中的进程被杀掉后,状态被置为killed,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6813968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存