解决 ORA-00060: Deadlock detected 小例(三)

2014-11-24 17:51:47 · 作者: · 浏览: 6
select addr,pid,spid,username,serial# from v$process t where t.PID in (132,138);

ADDR PID SPID USERNAME SERIAL#
---------------- ---------- ------------ --------------- ----------
000000019138CE88 132 13782 oracle 52
00000001983B5378 138 13792 oracle 6



SQL> select sid,serial#,paddr from v$session k where k.PADDR in ('000000019138CE88',
2 '00000001983B5378'
3 )
4 ;

SID SERIAL# PADDR
---------- ---------- ----------------
870 2207 000000019138CE88
891 9175 00000001983B5378

SQL>



根据 v$process 提供的spid 在操作系统层面查询:



[root@qs-xezf-db1 ~]# ps -ef |grep 13782
oracle 13782 1 1 11:30 00:01:48 oraclexezf (LOCAL=NO)
root 27059 5697 0 13:56 pts/3 00:00:00 grep 13782
[root@qs-xezf-db1 ~]# ps -ef |grep 13792
oracle 13792 1 1 11:30 00:01:45 oraclexezf (LOCAL=NO)
root 27065 5697 0 13:56 pts/3 00:00:00 grep 13792



由于上面的时间可以看出,在相同时间同时调用了两次,于是让开发的同事检查程序是否同时调用了两次,反馈信息确实如此,于是让他们更改之后,问题得以解决。