解决:ORA-00054:资源正忙,要求指定NOWAIT

来源:清泛编译     2017-06-26 16:09:53    人气:     我有话说( 0 人参与)

清泛网(www.tsingfun.com):创建索引的时候报错ORA-00054: resource busy and acquire with NOWAIT specified解决步骤:1:等待其他会话释放资源2:找出占用资

创建索引的时候报错ORA-00054: resource busy and acquire with NOWAIT specified

解决步骤:

1:等待其他会话释放资源

2:找出占用资源的会话,并删除 

3:重启数据库

原理分析:    

1:创建索引时会产生的锁

2:dml 语句会产生的锁

3:索引创建时加上关键字 online时产生的锁

 

找出占用资源的会话,并删除 

1:找出所有被锁的对象,定位出哪个回话占用

select l.session_id,o.owner,o.object_name

from v$locked_object l,dba_objects o

where l.object_id=o.object_id

结果:

session_id owner object_name

158 SA TEST_1

...

对比想要创建的索引,定位哪些会话需要被删除

2:找出所有照成锁的会话

 

select t2.username,t2.sid,t2.serial#,t2.logon_time

from v$locked_object t1,v$session t2

where t1.session_id=t2.sid order by t2.logon_time;

结果:

username  sid  serial# logon_time

SA 158 15184 2014/12/4 14:55:59

...

3:kill 所有占用资源的会话

命令形式:alter system kill session 'sid,serial#';

 

占用test_1的资源的会话:

alter system kill session '158,15184';

...

ORA-00054:资源正忙,要求指定NOWAIT

ORA-00054:资源正忙,要求指定NOWAIT

4.重启数据库

如果数据不重要的话,可以重启数据库回滚所有未提交事务,将资源释放出来。


标签: ORA 

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)