解决ORACLE被锁定的资源两法

解决ORACLE被锁定的资源
方法1:可以只接 commit
方法2:
---查找进程
--查找看是哪个用户造成的资源锁定,如果这个语句没有查询出记录,则数据库没有被锁定的资源
select distinct t2.username,t2.sid,t2.serial#,t2.logon_time,t2.terminal
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time

--查找数据库被锁定的资源的确切信息
SELECT spid,s.SID,s.SERIAL# FROM V$PROCESS p,V$SESSION s
WHERE p.addr = s.paddr
and s.USERNAME is not null
and NVL(s.osuser,'x') <> 'SYSTEM'
and s.type <> 'BACKGROUND'
and s.sid in
(
select /***/t2.sid 
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid /*order by t2.logon_time*/
)

--杀死进程上面语句查询出的锁定资源的进程 
--session 后面引号中参数就是上面语句查询出的 SID和SERIAL#
 alter system kill session '145,52416';

posted on 2008-04-13 00:26  一江水  阅读(522)  评论(0编辑  收藏  举报