死锁处理

Posted wardenking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了死锁处理相关的知识,希望对你有一定的参考价值。

1、发现死锁

select count(*) from v$locked_object;

如果有输出即表示有死锁

select session_id from v$locked_object ;

查询到死锁的sid(session_id与sid是相同的)

2、通过oracle查杀会话的方式解决死锁

[email protected]> select  SID,SERIAL# from v$session where sid = 68 or sid = 256;

3、杀掉死锁会话

[email protected]> alter system kill session‘68,1063‘;

##################################################################################

在实际生产中存在很多情况在数据库里查杀session的方式不能解决死锁问题导致死锁还在所以需要使用

在系统里查找spid查杀进程的方式处理死锁

#################################################################################

4、通过pid查找到系统所对应的进程号即spid

select a.sid,a.paddr,b.addr,b.spid from v$session a,v$process b where a.paddr=b.addr and sid = 232;

此处sid为上一步查找到的session_id

此时查找到了spid

5、退出oracle进入系统查找该进程

ps -ef|grep (spid)

此时spid为查到的spid  查看确认此进程

杀死            kill -9 spid

处理结束

以上是关于死锁处理的主要内容,如果未能解决你的问题,请参考以下文章

数据库死锁怎么处理

死锁的处理策略—预防死锁避免死锁检测和解除死锁

死锁的处理策略—预防死锁避免死锁检测和解除死锁

死锁的处理策略—预防死锁避免死锁检测和解除死锁

查询死锁和处理死锁(SqlServer)

王道操作系统笔记——— 死锁的处理策略