Oracle里的锁死Session
以前一直用PL/SQL Developer来查看和kill掉那些由于意外而锁死在Oracle里的session.那么到底session在哪里呢… 其实信息就在两个view里面:
- 当前锁住的object所在的view: v$locked_object
- session信息所在的view: v$session
查看locked session
所以只要把他们联系起来,就能看清当前有锁的进程详细信息:
SELECT c.owner, c.object_name, c.object_type, b.sid, b.serial#, b.STATUS, b.osuser, b.machine FROM v$locked_object a, v$session b, dba_objects c WHERE b.sid = a.session_id AND a.object_id = c.object_id;
Kill掉锁死的session
根据之前得到的session信息,用alter system语句就可以杀session解锁了。
ALTER system KILL session 'session-id,session-serial'
Linkbacks
[...] Oracle里的锁死Session [ÚCARENYA] [...]

Discussion