oracle数据库常见问题之ORA-00054:资源正忙,要求指定NOWAIT

oracle数据库常见问题之ORA-00054:资源正忙,要求指定NOWAIT

技术教程gslnedu2025-02-01 13:14:259A+A-

文章标题1.0版

如何解决ORA-00054资源正忙,要求指定NOWAIT?

背景:使用PLSQL时有时会出现报错:ORA-00054: 资源正忙,以下提供解决办法

1. 创建索引时失败报错

create index sa.idx_test_1_id on sa.test_1 (id);

NOWAIT :关键字表示sql语句采用非阻塞的方式,如果发现涉及到的数据被占有(被锁),则立即通知Oracle该资源被占用,返回错误信息

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

2.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

结果:

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

2.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;

结果:

3. 从系统中灭掉与会话对应的进程

kill -9 spid; --spid为第一步中查出来的系统进程号

PAGE

北京希嘉创智教育科技有限公司1/2

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8