首页 > 编程知识 正文

oracle数据库死锁解决方法,mysql发生死锁

时间:2023-05-03 10:57:23 阅读:128736 作者:3114

由于mysql今天导入了数据,其中一个表已死锁。 介绍如何解决死锁问题

以下是导致mysql死锁的四个条件

互斥条件:一个资源只能由一个进程占用,不能由两个或多个进程占用

不可抢占条件:进程已经获取的资源在未使用之前无法抢占。 只能抢占在使用后自己释放

申请占用条件:流程本身已经至少拥有一个资源,并且需要其他资源,但该资源被其他流程占用,并且没有释放自己已经占用的资源

循环等待条件:发生死锁时,始终会形成进程——资源的循环。 在进程集合{p1、p2、p3}中,p1请求p2占有的资源,p2请求p3占有的资源,p3请求p1占有的资源

解决死锁的方案

第一个:

1 .询问是否锁定表

show OPEN TABLES where In_use 0;

2 .查询进程(如果您具有SUPER权限,则可以查看所有线程。 否则,只能显示自己的线程)

显示流程列表

3 .进程id (以上命令的id列) ) ) ) ) ) )。

基尔德

第二个:

1 .查看锁定的事务

select * from information _ schema.innodb _ Trx;

2 .杀死进程id (以上命令中的trx_mysql_thread_id列) )。

基尔线程ID

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。