`
s_xy
  • 浏览: 20022 次
社区版块
存档分类
最新评论
阅读更多


当在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,

常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。
主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。
1、用dba权限的用户查看数据库都有哪些锁
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
如:testuser 339 13545 2009-3-5 17:40:05
知道被锁的用户testuser,sid为339,serial#为13545
2、根据sid查看具体的sql语句,如果sql不重要,可以kill
select sql_text from v$session a,v$sqltext_with_newlines b
  where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
  and a.sid=&sid order by piece;
查出来的sql,如: begin :id := sys.dbms_transaction.local_transaction_id; end;
3、kill该事务
alter system kill session '339,13545';
4、这样就可以执行其他的事务sql语句了

(当然也存在特殊情况,执行3步骤时会报其他错,这就需要通过系统级命令杀死,未完待续~)
 

分享到:
评论

相关推荐

    ORA-00060: 等待资源时检测到死锁--oracle 数据库表死锁异常

    在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...

    Oracle强制释放锁的命令

    Oracle 强制释放锁命令 ...Oracle 强制释放锁命令可以解决 ORA-00054 错误,但是需要谨慎地使用,以免对数据库的性能产生影响。在解决问题时,需要首先查询锁相关信息,然后使用强制释放锁的命令释放锁资源。

    oracle报错大全(珍藏版)

    #### ORA-00054: Resource Not Acquired When Waited 在等待时未能获得资源。这可能是因为资源被其他用户占用或并发控制机制的问题。 #### ORA-00055: Data Manipulation Language (DML) Operations 执行DML操作时...

    oracle+ora-各种常见java.sq

    - `java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired`: 这表示尝试获取的资源已被其他会话占用。可以调整事务隔离级别或增加等待时间。 7. **游标问题** ...

    几个ORACLE问题解决办法

    Oracle用户被锁,PL/SQL工具里使用用动态sql,导出对象 SQL脚本,ORA-00059解决办法,oracle ORA-01502 错误,ORA-24550,ORA-02054,查看oracle表每条记录的创建时间,

    oracle ora-00054:resource busy and acquire with nowait specified解决方法

    总之,`ORA-00054`错误是并发环境下常见的问题,解决它需要理解Oracle的锁定机制,并通过查询数据库状态、分析SQL和终止会话等方法来恢复系统的正常运行。在日常运维中,预防此类问题的发生同样重要,这需要合理的...

    Oracle错误代码大全

    * ORA-00054: 资源正忙,要求指定 NOWAIT * ORA-00055: 超出 DML 锁的最大数 * ORA-00056: 对象 '.' 上的 DDL 锁以不兼容模式挂起 * ORA-00057: 超出临时表锁的最大数 * ORA-00058: DB_BLOCK_SIZE 必须为才可安装此...

    ORA错误中文描述(包括所有)

    ### ORA错误中文描述知识点详解 #### ORA-00001: 违反唯一约束条件 ...以上是对部分ORA错误的详细介绍,这些错误覆盖了数据库管理中常见的一些问题,理解这些错误可以帮助DBA更快地定位问题并采取适当的措施进行修复。

    oracle数据库-错误编码大全

    - ORA-00054: 资源正忙,要求指定NOWAIT。在执行数据库操作时,所需的资源正被其他操作占用,如果用户希望不等待即刻获得资源,则可以在命令中使用NOWAIT选项。 - ORA-00055: 超出DML锁的最大数。当尝试获取的数据...

    oracle报错的详细列表

    #### ORA-00054: 资源正忙,要求指定NOWAIT 当请求资源时发现资源正被占用,并且没有指定 `NOWAIT` 选项时触发。 #### ORA-00055: 超出DML锁的最大数 当达到最大DML锁的数量限制时触发。 #### ORA-00056: 对象'.'...

    Oracle报错信息速查

    当用户尝试使用资源时,Oracle 数据库将检查资源是否正忙,如果正忙,则返回 ORA-00054 错误。 十五、超出 DML 锁的最大数(ORA-00055) ORA-00055 错误表示超出 DML 锁的最大数。当用户尝试使用 DML 锁时,Oracle...

    Oracle error code 大全

    ORA-00054:超出 DML 锁的最大数 ORA-00055:对象 '.' 上的 DDL 锁以不兼容模式挂起 ORA-00056:超出临时表锁的最大数 ORA-00057:DB_BLOCK_SIZE 必须为才可安装此数据库(非 ) ORA-00058:超出 DB_FILES 的最大值 ...

    oracle常见错误及解决方法

    12. ORA-00052, ORA-00053, ORA-00054, ORA-00055, ORA-00056, ORA-00057: 锁定和资源冲突 这些错误表明资源被其他会话占用,可能需要手动解除锁定或优化事务处理。 13. ORA-00058, ORA-00059, ORA-00060: 数据库...

    ORA-28001 the password has expired密码过期.docx

    在Oracle数据库管理中,"ORA-28001 the password has expired" 是一个常见的错误,它表明数据库用户的密码已经超过了预设的有效期限,导致用户无法正常登录。这个错误主要出现在Oracle 11G及更高版本中,因为这些...

    常见Oracle错误都在这了! ORA-00257/ORA-00313/ORA-28000/ORA-28000

    在Oracle数据库系统中,错误代码通常提供了解决问题的关键线索。本文将深入解析四个常见的Oracle错误:ORA-00257、ORA-00313、ORA-28000以及ORA-28000。这些错误可能在数据库运行过程中遇到,了解它们的原因和解决...

    Oracle错误代码大全.docx

    ORA-00054: 资源正忙,要求指定 NOWAIT ORA-00055: 超出 DML 锁的最大数 ORA-00056: 对象 '.' 上的 DDL 锁以不兼容模式挂起 ORA-00057: 超出临时表锁的最大数 ORA-00058: DB_BLOCK_SIZE 必须为才可安装此数据库 ...

    ORA-01940:无法删除当前已连接的用户

    在Oracle数据库管理中,"ORA-01940:无法删除当前已连接的用户"是一个常见的错误,它表示尝试删除的用户当前正处于活动状态,即至少有一个会话(session)与该用户关联。要成功删除用户,必须先断开所有相关会话。...

    Oracle锁表问题的简捷处理技巧

    ### Oracle锁表问题的简捷处理技巧 在Oracle数据库开发过程中,锁机制是确保数据一致性和并发控制的关键组件之一。当多个用户或进程试图同时访问同一个资源时,Oracle数据库通过实施不同的锁定策略来协调这些访问...

Global site tag (gtag.js) - Google Analytics