第一步,查询有锁的对象
select * from v$locked_object;
第二步: 查询被阻塞的会话,如果有的话,就记下 sid.
select * from v$lock where lmode > 0 and type in ('TM','TX');
第三步:根据sid 查询 sid 和session中的serial#编号 以便进行kill
select sid, serial#,username,osuser from v$session where sid = '(上一步查询的sid编号)'
第四步: 根据上一步查询出的 sid,serial# 进行kill.
alter system kill session 'sid,serial#';
当上面的步骤进行完毕,就恢复正常了。这是今天生产环境碰到的问题然后解决的步骤。
有一点就是必须的 dba 权限的用户名登录 才能查到上面的表,不然会报找不到表的。
我也是从另外一篇博客收到的启发。 地址:http://blog.itpub.net/31397003/viewspace-2142672/
感谢无私奉献的人。