解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误
本人在使用pl/sql developer 客户端调用存储过程进行操作时发现中途卡机然后强制终止pl/sql developer 之后,oracle就一直出现锁相关的错误。
经分析认为在调用存储过程时对表进行了DDL语句操作时导致了悲观封锁。客户端卡机后oracle一直没有对这个锁进行释放且一直不会完成释放导致错误。
需要对此会话进行强制杀掉:
1. 查询当前被锁的对象
SELECT * FROM V$LOCKED_OBJECT WHERE ORACLE_USERNAME= 'ATHENA';
SQL> SELECT * FROM V$LOCKED_OBJECT WHERE ORACLE_USERNAME= 'ATHENA';
XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE
---------- ---------- ---------- ---------- ---------- ------------------------------ ------------------------------ ------------ -----------
19 11 79134 76618 436 ATHENA Administrator 3512:1272 3
11 28 74487 76617 574 ATHENA Administrator 2412:3928 3
20 25 75512 76620 594 ATHENA Administrator 4064:4060 3
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';
SID SERIAL# USERNAME ACTION
---------- ---------- ------------------------------ --------------------------------
436 62365 ATHENA 测试窗口 - procedure PROC_HIS_AR
574 60824 ATHENA 测试窗口 - procedure PROC_HIS_AR
594 15217 ATHENA 测试窗口 - procedure PROC_HIS_AR
3. 杀会话
语法:
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
例如:
ALTER SYSTEM KILL SESSION '436,62365';
返回:ora-00031:session marked for kill. 此会话没有被杀掉,只是标记为要杀掉。
可查询
SELECT spid,osuser,s.PROGRAM FROM v$session s,v$process p WHERE s.PADDR=p.ADDR AND s.SID=436;
然后登陆到操作系统上使用如下命令进行操作系统级别的杀进程
语法:orakill sid thread 或者 #kill -9 spid
例如: orakill 数据库实例名 ${spid};
实在不行只能重启数据库
分享到:
相关推荐
当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。 主要是因为有事务正在执行...
ora-01033:oracle initialization or shutdown in progress 解决方法 ora-01033:oracle initialization or shutdown in progress 解决方法 ora-01033:oracle initialization or shutdown in progress 解决方法 ora-...
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
ORA-32001:write to spfile requested but no spfile is in use请求写入spfile,但没有使用spfile的解决方法 在输入以下语句中报了这样的错误: SQL>alter system set control_files=’/u01/app/oracle/oradata/prod/...
oracle报错ora-12541:TNS无监听程序
ORA-01036:非法的变量名/编号 oracle特有的错误
NULL 博文链接:https://3w1h.iteye.com/blog/1211779
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
调整参数后引起,ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 3 2768M 的解决方案
ORA-00031:标记要终止的会话解决方案; ORA-00031:标记要终止的会话解决方案;
kettle连接oracle12C--报错ORA-28040 没有匹配的验证协议
oracle 12 c ORA-01017: 用户名/口令无效; 登录被拒绝
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
ORA-12518 TNS:监听程序无法分发客户机连接,在您安装好数据库后配置连接数据库的过程中遇到这类问题应该很头疼吧,不过,当您还是四处查资料来解决您遇到的另你头疼的问题时,如果不经意间看到了这则贴子,那请您升...
主要介绍了连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
前几天升级Oracle数据库,从11.2.0.1升级至11.2.0.4,安装完成后,打开PL/SQL,显示ORA-12514,如图: 问题阐述 ORA-12514:监听程序当前无法识别链接描述符中请求的服务,简单的来说就是Oracle数据库的监听器配置有...
NULL 博文链接:https://springlin.iteye.com/blog/1520668