如何杀死oracle死锁进程
1个回答
展开全部
1.查哪个过程被锁
查V$DB_OBJECT_CACHE视图:
SELECT*FROMV$DB_OBJECT_CACHEWHEREOWNER='过程的所属用户'ANDLOCKS!='0';
2. 查是哪一个SID,通过SID可知道是哪个SESSION.
查V$Access视图:
SELECT*FROMV$ACCESSWHEREOWNER='过程的所属用户'ANDNAME='刚才查到的过程名';
3. 查出SID和SERIAL#
查V$SESSION视图:
SELECTSID,SERIAL#,PADDRFROMV$SESSIONWHERESID='刚才查到的SID'
查V$PROCESS视图:
SELECTSPIDFROMV$PROCESSWHEREADDR='刚才查到的PADDR';
4. 杀进程(1).先杀ORACLE进程:
ALTERSYSTEMKILLSESSION'查出的SID,查出的SERIAL#';
(2).再杀操作系统进程:
KILL-9刚才查出的SPID或ORAKILL刚才查出的SID刚才查出的SPID方法二:
经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)
1)查找死锁的进程:
sqlplus"/assysdba"
SELECTs.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESSFROMV$LOCKED_OBJECTl,V$SESSIONSWHEREl.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
altersystemkillsession‘sid,serial#’;(其中sid=l.session_id)
3)假如还不能解决,
selectpro.spidfromv$sessionses,v$processprowhereses.sid=XXandses.paddr=pro.addr;
其中sid用死锁的sid替换。
查V$DB_OBJECT_CACHE视图:
SELECT*FROMV$DB_OBJECT_CACHEWHEREOWNER='过程的所属用户'ANDLOCKS!='0';
2. 查是哪一个SID,通过SID可知道是哪个SESSION.
查V$Access视图:
SELECT*FROMV$ACCESSWHEREOWNER='过程的所属用户'ANDNAME='刚才查到的过程名';
3. 查出SID和SERIAL#
查V$SESSION视图:
SELECTSID,SERIAL#,PADDRFROMV$SESSIONWHERESID='刚才查到的SID'
查V$PROCESS视图:
SELECTSPIDFROMV$PROCESSWHEREADDR='刚才查到的PADDR';
4. 杀进程(1).先杀ORACLE进程:
ALTERSYSTEMKILLSESSION'查出的SID,查出的SERIAL#';
(2).再杀操作系统进程:
KILL-9刚才查出的SPID或ORAKILL刚才查出的SID刚才查出的SPID方法二:
经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)
1)查找死锁的进程:
sqlplus"/assysdba"
SELECTs.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESSFROMV$LOCKED_OBJECTl,V$SESSIONSWHEREl.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
altersystemkillsession‘sid,serial#’;(其中sid=l.session_id)
3)假如还不能解决,
selectpro.spidfromv$sessionses,v$processprowhereses.sid=XXandses.paddr=pro.addr;
其中sid用死锁的sid替换。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |