开发者社区> 问答> 正文

接口无响应,长时间之后控制台报错:ORA-00060

ORA-00060: deadlock detected while waiting for resource

展开
收起
佚名4918 2021-10-21 11:39:16 1150 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,Oracle的锁机制是建立在行锁一级,在插入、更新行一级信息的时候,会加入独占锁内容。死锁是数据库经常发生的问题,数据库一般不会无缘无故产生死锁,死锁通常都是由于我们应用程序的设计本身造成的

    这里给您提供解决死锁问题参考方法把:

    方法一:提交或回滚死锁的会话

    这里Session1出现死锁,只要执行commit或者rollback就可以解除死锁,只不过事务中第一个SQL执行成功,第二个SQL执行失败。 image.png

    此时,死锁状态解除:

    SYS@11g>select sid, serial#, username, command, lockwait, osuser from v$session where lockwait is not null;
    
    no rows selected
    
    

    方式二:重新启动数据库

    方式三:杀掉阻塞的会话

    (1)查找死锁的进程: image.png

    2)kill掉这个死锁的进程:

    SYS@11g>alter system kill session '53,4307';
    
    2021-10-21 13:09:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS控制台一本通 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载