死锁处理

1、发现死锁

select count(*) from v$locked_object;

如果有输出即表示有死锁

select session_id from v$locked_object ;

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

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

SYS@test11g> select  SID,SERIAL# from v$session where sid = 68 or sid = 256;

3、杀掉死锁会话

SYS@test11g> 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

处理结束

原文地址:https://www.cnblogs.com/Wardenking/p/10286582.html