您的位置:首页 > 大数据 > 人工智能

ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源

2013-09-19 08:16 127 查看
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源

以上问题是我频繁操作公司测试机oracle数据库时发生的错误(因公司项目二期新需求得重新设计部分表结构,将原始表信息迁移到新表中,原始表与新表字段大多各不一致),据网上查询可能是因为对数据库表频繁操作后(新增数据,创建该列序列,删除

表列触发器)而没有进行事物提交commit,对!我的确没有进行commit提交。所以就出现了标题上面错误。因oracle中有事物锁

的机制,如对一个表中进行了事物操作(增删改)未提交commit,oracle可能就会自动锁定该表对象,(保证数据 的完整性),我

说的是可能,也分情况而定,数据量大或操作太过频繁时可能会出现这种操作,因为我在本地数据库创建简单测试表怎么测试(进

行增删改,不提交事物commit)都没出现公司测试机表被锁问题。在网上翻阅查询该问题的解决方案的确有效,故记录下来,已起

到让自己梳理思路加深记忆和提醒他人作用。

解决方法如下:

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

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

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