打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
oracle数据库被锁
1、数据库表被锁的现象
在操作数据库时,有的时候我们会很突然的遇到数据库报下面这个错误
[sql] view plaincopy
ORA-00054: resource busy and acquire with NOWAIT specified
下面是从网上获取的对该问题的解析,供大家参考      第一个可能的原因是在lock table 和select for update 的句子中有nowait关键字导致报错。nowait关键字的意思是当你要锁定某一资源时,如果该资源正被别的用户锁定则直接返回错误信息,而不是等待别的用户解锁。
第二个原因是你执行了ddl语句并且这个ddl 无法获得需要的锁。
2、表被锁的解决办法
第一种办法是“治病”,采用如下方法可以解决眼前遇到的问题,既然表被锁,那么解锁就是了。
[sql] view plaincopy
SELECT a.username,decode(b.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,
c.owner,c.object_name,c.object_type,
a.sid,a.serial#,a.terminal,a.machine,a.program,a.osuser
FROM v$session a,v$lock b,dba_objects c
WHERE b.sid = a.sid
AND b.id1 = c.object_id(+)
AND a.username is NOT Null;
找到被锁的表,执行以下语句解锁[sql] view plaincopy
alter system kill session 'sid,serial#';
以上方法是看病就医的办法,难保以后还回遇到这个问题,下面看看另一个办法。
第二种办法是“治本”,这个办法是oracle_11g才适用的方法,
[sql] view plaincopy
alter session set ddl_lock_timeout = 600;
或者[sql] view plaincopy
alter system set ddl_lock_timeout = 600;
这种方法是设置系统或会话的锁定时间。这个办法实际上也不是治本的方法,但是可以减少人工操作罢了,要想治本还是要求我们的开发人员和数据库使用人员在操作数据库的时候记得要commit。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
百试不爽”的通便方法
钥匙断在锁里不要着急,这个办法太好用了,省时又省力 2023/1/8 19:22
数据库锁表及阻塞的原因和解决办法
多用户并发操作的解决方案
分布式锁
vs2010无法配置连接sql server 2000数据库的解决办法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服