如何检测被锁住的Oracle存储过程及处理办法汇总(转)
1.查看是哪一个存储过程被锁住
查V$DB_OBJECT_CACHE视图
select * from V$DB_OBJECT_CACHE where owner='过程的所属用户' AND LOCKS!='0'
2.查看是哪一个sid,通过sid可以知道是哪一个session
查v$access视图
select * from v$access where owner='过程的所属用户' and name='刚才查到的过程名'
3.查出sid和serial#
查v$session视图
select sid,serial#,paddr from v$session where sid='刚才查到的sid';
查v$process视图
select spid from v$process where addr='刚才查到的paddr';
4.杀进程
4.1先杀oracle进程
alter system kill session '查出的sid,查出的serial#';
4.2再杀操作系统进程
如果是unix
kill -9 刚查出的spid
如果是windows
orakill 刚查出的sid 刚查出的spid
http://www.cnblogs.com/zwl715/p/3699124.html
原因: 存储过程执行过程中,关闭或者中断存储过程,重新编译是等待时间很长,无法删除
解决:
先查出被锁定存储过程的spid
SELECT spid
FROM V$DB_OBJECT_CACHE OC,
V$OBJECT_DEPENDENCY OD,
DBA_KGLLOCK W,
V$SESSION S,
V$PROCESS P
WHERE OD.TO_OWNER = OC.OWNER
AND OD.TO_NAME = OC.NAME
AND OD.TO_ADDRESS = W.KGLLKHDL
AND W.KGLLKUSE = S.SADDR
AND P.ADDR = S.PADDR
AND OC.NAME = 'SP_PS_DATAWWTPFLOWSUM_U'//存储过程名称
登陆被锁定存储过程所属Oracle的安装服务器, 开始->运行->CMD ,输入格式 orakill SID实例 SPID如:C:\>orakill orcl 540
http://www.cnblogs.com/zwl715/p/3699120.html
如何检测被锁住的Oracle存储过程及处理办法汇总(转)的更多相关文章
- 如何检测被锁住的Oracle存储过程
今天遇到了这个情况,然后在网上找了到了这篇文章,借鉴过来做参考吧! 1.查看是哪一个存储过程被锁住 查V$DB_OBJECT_CACHE视图 select * from V$DB_OBJECT_CAC ...
- Oracle“记录被另一个用户锁住” 无法更新删除的解决办法
1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b. ...
- 查看解决Oracle对象锁住的问题
在编译的一个存储过程的时候,对象可能由于被锁住而处于假的卡死状态,这个时候有的是因为,这个过程正在运行中,所以无法编译: 上次我遇到一次,我很清楚的确定这个过程没有运行,可以我就是无法编译,对象一直被 ...
- 查看Oracle数据库被锁住的表,删除锁表的进程
锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name, lo.locked_mode, lo. ...
- Oracle使用——oracle表锁住,杀掉锁表进程
背景 在操作Oracle时,多人同时操作oracle数据库的同一张表的时候,经常会造成锁表现象,这时需要手动进行解锁. 步骤 以dba身份登录Oracle数据库(否则用户缺少杀掉进程权限,需要给用户分 ...
- oracle中记录被另一个用户锁住的原因与解决办法
oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from ...
- 解决oracle 表被锁住问题
想修改Oracle下的某一张表,提示 "资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效" 看上去是锁住了. 用系统管理员登录进数据库,然后 SELECT sid, ...
- oracle中表记录被另一个用户锁住
应用场景 在查询oracle表时,提示表记录被另一个用户锁住了 有可能是在使用了pl/sql工具后修改某个表记录时,加锁,或者发生故障异常退出,下次登录进去修改不了 查询锁 --查看数据库的锁的来源. ...
- oracle数据中记录被另一个用户锁住
原因:PL/SQL里面执行语句执行了很久都没有结果,于是中断执行,于是就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住. 解决方法: 第一步:(只是用于查看哪些表被锁住,真正有 ...
随机推荐
- mojo 默认启用utf-8
[root@dr-mysql01 ~]# cat f1.pl use Encode; print "验证111\n"; my $d=encode_utf8('验证'); print ...
- windows下eclipse跑junit报错:CreateProcess error=206
from:http://isuifengfei.iteye.com/blog/1684262 windows下,eclipse中运行junit出现错误提示: Exception occurred ex ...
- 591 - Box of Bricks
Box of Bricks Little Bob likes playing with his box of bricks. He puts the bricks one upon another ...
- ExtJs4 笔记(7) Ext.tip.ToolTip 提示
本篇介绍提示控件,ExtJs支持两种方式定义提示,可以支持普通html元素和一般的ExtJs UI控件. 一.基本提示 Ext.tip.ToolTip 1.最简单的提示 下面通过代码定义一个最简单的提 ...
- 使用visual c++ 2005远程调试64位系统上32位与64位程序
一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了. 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调 ...
- Delphi的类型转换 good
Delphi是一种强类型转换的语言.在VC中,赋值符用″=″,例如x=1;到了Delphi赋值符就变成了″:=″,例如x:=1. 从赋值时用符号″:=″而不用″=″,就隐约可见Delphi对类型匹配要 ...
- iOS Dev (60) 怎样实现 UITextView 中的 placeHolder
iOS Dev (60) 怎样实现 UITextView 中的 placeHolder 作者:阿锐 地址:http://blog.csdn.net/prevention - 跟着你的 UITextVi ...
- 怎样用Java编写一段代码引发内存泄露
通过下面步骤能够非常easy产生内存泄露(程序代码不能訪问到某些对象,可是它们仍然保存在内存中): 应用程序创建一个长时间执行的线程(或者使用线程池,会更快地发生内存泄露). 线程通过某个类载入器(能 ...
- Delphi5 update1的序列号
好不容易找到一个: Serial Number: 100-006-1659Key: 6ax0-91x0 ------------------------------------------- 办法2: ...
- Java 建立mysql数据库连接的语句
每次在面试时被问到jdbc的数据路链接过程都卡着,这次不怕了,背会了... 第一个,比较粗糙的 try{ Class.forName("com.mysql.jdbc.Driver&quo ...