您的位置:首页 > 数据库 > Oracle

ORA-00054I (oracle资源被锁定) 的解决方法

2012-07-03 14:47 489 查看
系统有一个不用的表,想删除这个表,或者删除表中的数据,

SQL> drop table testtable;

ERROR at line 1:

ORA-00054: resource busy and acquire with NOWAIT specified

资源正忙,要求制定NOWAIT

出现这个问题的原因是正在执行的操作请求的资源正被其他事务锁定。

出现这种问题后查V$LOCKED_OBJECT,要么等事务结束后再做;

要么杀掉持有锁的会话(如果不是关键会话):

1.通过上句查找出已被锁定的数据库表及相关的sid、serial#及spid

sqlplus / as sysdba

SQL> select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号

from v$locked_object l , dba_objects o , v$session s , v$process p

where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;

2.在数据库中灭掉相关session

SQL> alter system kill session 'sid,serial#';--sid及serial#为第一步查出来的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: