日期:2014-05-16  浏览次数:20392 次

Oracle解锁方法

Oracle数据库锁,是一种很好的并发数据保护机制,以下强制解锁方法,只适合紧急情况下使用。
现网使用,必须慎重。
?
查询数据库死锁
select?t2.username||'???'||t2.sid||'???'||t2.serial#||'???'||t2.logon_time||'???'||t3.sql_text
??????from?v$locked_object?t1,v$session?t2,v$sqltext?t3
??????where?t1.session_id=t2.sid?
??????and?t2.sql_address=t3.address
??????order?by?t2.logon_time;
?
alter?system?kill?session?'sid,serial#';
?
1)查找死锁的进程:
sqlplus?"/as?sysdba"???(sys/change_on_install)
SELECT?s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS?
FROM?V$LOCKED_OBJECT?l,V$SESSION?S?WHERE?l.SESSION_ID=S.SID;?
2)kill掉这个死锁的进程:
alter?system?kill?session?‘sid,serial#’;??(其中sid=l.session_id)
3)如果还不能解决,
select?pro.spid?from?v$session?ses,v$process?pro?where?ses.sid=XX?and?ses.paddr=pro.addr;??
?其中sid用死锁的sid替换。
exit
ps?-ef|grep?spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。?