ORA-00054:resource busy and acquire with nowait specified(资源正忙,需指定nowait)解决方法

ORA-00054:resource busy and acquire with nowait specified(资源正忙,需指定nowait)解决方法
通过存储过程向数据库一下子插入了一千万(10000000)条记录,结果等了很长时间,PL/SQL都没有响应,我又瞎折腾了下,结果执行了好几次,导致数据库假死了,我只有删除当前的会话,从网上找到相关的脚本代码。


1> 通过此语句查询正在锁定的SESSION_ID:

1 SELECT   SESSION_ID    FROM    V$LOCKED_OBJECT,USER_OBJECTS   WHERE    V$LOCKED_OBJECT. OBJECT_ID     =    USER_OBJECTS. OBJECT_ID


2> 通过第一步查询到的SESSION_ID查询SERIAL#

1 SELECT  SERIAL#  FROM  V$SESSION   WHERE  SID = ' 12 ' (此处 ' 12 ' 为上面查询到的 ' SESSION_ID ' )


 3> 根据1,2步查询到的SESSION_ID和SERIAL#执行

1 ALTER    SYSTEM    KILL    SESSION   ' 12,154 ' (12为SESSION_ID的值, 154为SERIAL#的值)

4> 如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么还可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得当前进程(线程)的标示PID:

1 select  spid, osuser, s.program 
2 from  v$session s,v$process p
3 where  s.paddr = p.addr  and  s.sid = 12  (12是上面的SESSION_ID)

然后在OS通过任务管理器找到对应的进程,在杀死这个进程(线程)

你可能感兴趣的:(ORA-00054:resource busy and acquire with nowait specified(资源正忙,需指定nowait)解决方法)