网站首页 > 数据库 / 正文
文章标题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:oracle 删除 表
猜你喜欢
- 2024-11-26 Oracle常用语句
- 2024-11-26 误删除MySQL数据库表的ibd文件怎么办
- 2024-11-26 查询所有用户的表,ORACLE下有三个视图
- 2024-11-26 MySQL删除重复行
- 2024-11-26 Oracle语法-如何建立服务器监听及数据导入导出
- 2024-11-26 oracle数据库知识点汇总(上)
- 2024-11-26 「数据库数据恢复」Oracle数据库如何恢复truncate表的数据
- 2024-11-26 oracle表空间数据文件迁移
- 2024-11-26 oracle删错数据了,要跑路吗,等一下,先抢救一下
- 2024-11-26 超详细的四类数据库去重实现方案汇总,值得收藏