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

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#为第一步查出来的数据。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值