解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误

本人在使用pl/sql developer 客户端调用存储过程进行操作时发现中途卡机然后强制终止pl/sql developer 之后,oracle就一直出现锁相关的错误。 
经分析认为在调用存储过程时对表进行了DDL语句操作时导致了悲观封锁。客户端卡机后oracle一直没有对这个锁进行释放且一直不会完成释放导致错误。

需要对此会话进行强制杀掉: 
1. 查询当前被锁的对象

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

2. 查询session信息 
SQL> SELECT v.sid,v.SERIAL#,v.USERNAME,v.ACTION FROM v$session v WHERE v.sid IN (SELECT session_id FROM v$locked_object WHERE ORACLE_USERNAME= ‘ATHENA‘) AND V.MACHINE=‘NBCB\KJB-080701N‘;

3. 杀会话 
语法: 
ALTER SYSTEM KILL SESSION ‘SID,SERIAL#‘; 
例如: 
ALTER SYSTEM KILL SESSION ‘436,62365‘;

杀完之后再查询,发现sid对应的数据没了,这样就可以啦!实在不行只能重启数据库

时间: 2024-07-30 21:39:11

解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误的相关文章

Oracle中的ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

向某个数据库用户中插入.更新.删除一个表的数据,或是增加一个表的主键.索引时,出现下面的错误: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired 这是因为有事务正在进行或是事务已经被锁,因此导致不成功 1)用dba权限的用户查询数据库中有哪些锁 select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1

【错误整理】ora-00054:resource busy and acquire with nowait specified解决方法【转】

当某个数据库用户在数据库中插入.更新.删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误. 主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功. 1.用dba权限的用户查看数据库都有哪些锁 select t2.username,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$se

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

当某个数据库用户在数据库中插入.更新.删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现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$s

ora-00054:resource busy and acquire with nowait specified

当某个数据库用户在数据库中插入.更新.删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误. 主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功. 1.用dba权限的用户查看数据库都有哪些锁 select t2.username,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$se

Win7x64中使用PowerDesigner连接Oralce数据库报“[Oracle][ODBC][Ora]ORA-12154:TNS:无法解析指定的连接标识符”错误解决方法

错误描述 操作系统是Win7 x64,Oracle服务端是Oracle11g x64,客户端是Oracle10gR2 x86. 使用PL-SQL Developer连接正常 使用系统ODBC连接正常.这里要注意的是,64位系统默认启动的是64位ODBC数据源管理器,默认指向的是服务端连接,所以需要为Oracle服务端也配置TNS Service Name,否则同样会连接报错.PowerDesigner默认启动的是32位的ODBC数据源管理器,程序路径为“%SystemRoot%\SysWOW64

如何解决Oracle数据库的非归档模式迁移到归档模式中存在的问题

今天在做oracle归档测试的时候发现了几个问题,在这里记录下来希望能得到大家的纰漏和帮助 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 19 17:34:42 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Ente

如何解决oracle数据库过期的情况

之前用的数据库都是开源的,在另一台电脑上安装的时候,居然有时间限制,只能用30天.安装了好多次都是这样,就这样,三十天一破解.破解方法如下: 不管是快要过期了还是已经过期了,都可以用这个方法. 1.在“运行”中输入regedit,回车打开注册表. 2.在注册表里按HKEY_CURRENT_USER\Software这个路径找到“Allround Automations ”,删除它. 3.删除上一步中的后,在找到HKEY_CURRENT_USER\Software\Microsoft\Securi

解决oracle数据库中 ORA-01843: 无效的月份问题

1.这是因为客户端是中文环境,格式mon就不能用英文的月份写法,必须用中文的“六月”如果不想修改sql语句运行的话,就需要在执行该语句之前,使用alter session 命令将nls_date_language修改为american,如下:alter session set nls_date_language='american'以英语显示日期. 2若你的客户端是英文环境,那就是你没有用oracle数据的时间函数查询数据,应在sql语句中使用oracle数据库中的时间函数.

解决Oracle数据库错误ORA-16040和ORA-00312

一.问题现象及排查过程 数据库服务器重启后,应用无法正常启动,提示无法连接数据库.看来,问题可能出在数据库服务器上,那就先检查数据库服务器: 1.登录进数据库服务器后,打开cmd命令提示符,输入命令 sqlplus / as sysdba 连入本机数据库,进入sqlplus程序上下文,然后输入命令 select instance_name,status from v$instance; 执行后,提示数据库在mounted状态,而非在open状态,自然无法正常对外提供服务了.难怪应用无法正常启动!