ORA-00054 资源正忙 "resource busy and acquire with NOWAIT specified"错误-阿里云开发者社区

开发者社区> 科技小能手> 正文

ORA-00054 资源正忙 "resource busy and acquire with NOWAIT specified"错误

简介:
+关注继续查看

ORA-00054 资源正忙 "resource busy and acquire with NOWAIT specified"错误 [oracle@mlab2 data]$ oerr ora 00054 00054, 00000, "resource busy and acquire with NOWAIT specified or timeout expired" // *Cause: Interested resource is busy. // *Action: Retry if necessary or increase timeout.   引起该错误的常见原因是: 所需要的资源正忙或者参数DDL_LOCK_TIMEOUT(11g)指定的DDL锁超时指标被达到,注意在11g之前默认情况下DDL语句以NOWAIT形式出现 对于该错误的建议是 稍后重试SQL命令语句,推荐是在业务空闲时期执行,或者指定更大的DD_LOCK_TIMEOUT,或者不要使用显示的NOWAIT子句   关于该ORA-00054错误的详细说明: 在绝大多数情况下ORA-00054都是最常见不过的报错信息,常在SQL语句被其他用户的工作阻塞时出现,该被阻塞的SQL命令存在2种可能: 在语句中指定了"NOWAIT"子句,因此该语句将不被阻塞等待,而直接报错即ORA-00054错误 语句本身是DDL,在11g之前或者DDL_LOCK_TIMEOUT=0,该DDL语句直接返回ORA-54错误 简而言之 DDL或 SELECT .. FOR UPDATE NOWAIT都可能因为存在不兼容的锁模式而遇到ORA-54错误   相关的诊断步骤: 该ORA-00054错误一般不需要特别去诊断,除非他频繁影响应用正常运作或者意外出现。 最简单的我们可以通过该语句本身去定位哪些对象(主要是TABLE)被以其他进程以不兼容的模式锁住。 对于重复执行的DDL语句,若采用PL/SQL存储过程DBMS_SQL来调用则可以由于本PL/SQL程序块的一些依赖关系导致该DDL访问的对象被锁。 对于SELECT FOR UPDATE语句,可以尝试去掉其NOWAIT子句来检查该语句如何被阻塞。 若存在阻塞可以通过V$LOCk检测阻塞情况,例如: SELECT * FROM V$LOCK WHERE request!=0; --找出被阻塞的进程   也可以直接参考更高效的语句 DIAG LOCK:http://www.askmaclean.com/archives/script-diagnostic-oracle-locks.html   其次有必要检查一些,是否外键列都有了必要的索引?(这可能导致额外的表锁,虽然在10g以后得到优化) 若是SELECT ... FOR UPDATE引起的锁,是否有把2表连接(JOIN)的操作?这样可能导致父和子行都被锁住,若仅仅想锁住child row,则需要加入以下子句: FOR UPDATE OF COLUMN_ON_CHILD_TABLE      



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278119

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一步一步搭建前端监控系统:如何监控资源加载错误?
摘要: 资源加载失败会破坏产品功能以及用户体验.... 作者:一步一个脚印一个坑 原文:搭建前端监控系统(三)静态资源加载监控篇 Fundebug经授权转载,版权归原作者所有。 一步一步搭建前端监控系统系列博客: 一步一步搭建前端监控系统:JS错误监控篇 一步一步搭建前端监控系统:如何将网页截图上报? 一步一步搭建前端监控系统:接口请求异常监控篇 一步一步搭建前端监控系统:如何定位前端线上问题? 一步一步搭建前端监控系统:如何记录用户行为? 一步一步搭建前端监控系统:如何监控资源加载错误? 怎样定位前端线上问题,一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后。
1178 0
Unity3D热更新之LuaFramework篇[09]--资源热更新与代码热更新的具体实现
Unity3D热更新之LuaFramework篇[09]--资源热更新与代码热更新的具体实现一、准备工作1、制作一个用于热更新的界面此前我制作了一个大厅界面,并且放置了两个按钮:”排行榜“和”商城“,排行榜按钮已经用于打开排行榜页面。
1132 0
silverlight中如何将string(字符串)写入Resource(资源)?
1.导入命名空间 xmlns:clr="clr-namespace:System;assembly=mscorlib" 2.然后就可以这样用了                           http://www.
531 0
资源编排ROS之自定制资源(多云部署Terraform篇)
资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。 ROS资源编排接入了大量的阿里云资源,目前涉
1024 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载