Oracle数据库中如何查找session中的死锁 |
本文标签:Oracle数据库 以下的文章主要讲述的是Oracle数据库中如何查找session中的死锁的具体方案,我前两天在一信誉度特别好的网战上,看到相关内容,今天拿出来供大家分享,如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了 。 查V$DB_OBJECT_CACHE视图: SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=过程的所属用户 AND LOCKS!=0; 2. 查是哪一个SID,通过SID可知道是哪个SESSION. 查V$ACCESS视图: SELECT * FROM V$ACCESS WHERE OWNER=过程的所属用户 AND NAME=刚才查到的过程名; 3. 查出SID和SERIAL# 查V$SESSION视图: SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=刚才查到的SID 查V$PROCESS视图: SELECT SPID FROM V$PROCESS WHERE ADDR=刚才查到的PADDR; 4. 杀进程 (1).先杀Oracle数据库进程: ALTER SYSTEM KILL SESSION 查出的SID,查出的SERIAL#; (2).再杀操作系统进程: KILL -9 刚才查出的SPID 或 ORAKILL 刚才查出的SID 刚才查出的SPID 方法二: 经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:) 1)查找死锁的进程:
2)kill掉这个死锁的进程:
3)如果还不能解决,
其中sid用死锁的sid替换 。
其中spid是这个进程的进程号,kill掉这个Oracle数据库进程 。 |