专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

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

ins518 2024-10-17 13:12:32 技术文章 11 ℃ 0 评论

文章标题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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表