--查看被锁的表
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name, s.action,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v$locked_object l,dba_objects o,v$session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusn Desc;
kill锁首先要取得登录Oracle用户的权限,再执行如下数据:
--kill锁
alter system kill session 'sid,SERIAL#'
--查询Oracle所有表
select Distinct owner from all_tables where owner='UATOLTP';
--查询锁表与计算机名匹配
Select a.Owner, a.Object_Name, b.Xidusn, b.Xidslot, b.Xidsqn, b.Session_Id, b.Oracle_Username, b.Os_User_Name, b.Process,
b.Locked_Mode, c.Machine, c.Status, c.Server, c.Sid, c.Serial#, c.Program
From All_Objects a, V$locked_Object b, Sys.Gv_$session c
Where (a.Object_Id = b.Object_Id) And (b.Process = c.Process) And c.status = 'ACTIVE'
Order By 1, 2;
注意后面的owner值必须大写,这个我总是忘记
分享到:
相关推荐
oracle查询锁表和解锁。oracle在操作的过程中经常会遇到锁表的情况,一般能够用kill命令消除。
Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?
Oracle查找被锁进程,及如何在数据库级或操作系统级Kill掉相应被锁的进程
B.SESSION_ID 锁表SESSION_ID, B.ORACLE_USERNAME 锁表用户名, decode(D.type, 'XR', 'NULL', 'RS', 'SS(Row-S)', 'CF', 'SS(Row-S)', 'TM', 'TABLE LOCK', 'PW', 'TABLE LOCK', 'TO', 'TABLE LOCK',...
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于”假死”状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 代码如下: –锁表查询SQLSELECT object_name, machine, s.sid, s....
Oracle 数据库解锁session方式
oracle杀死锁 ,在批量导入数据的时候,在数据库中很容易就碰到锁表了,导致长时间数据库卡死,此脚本方便找寻数据库被锁对象,如果在oracle中不能alter kill掉 说明该session已过期需要进入后台去杀掉进程
查询oracle锁所属进程,并生成相应的kill进程脚本。。。。。。。。。。。。。。
查看锁,杀锁,以及杀不掉的可能处理方法,用于解放被锁住的表。
kill system session(解决oracle死锁)
Oracle查询包锁定,提交频繁使用的存储过程时如出现死锁显现(白屏没反映)可通过此脚本查询后KILL掉死锁进程,也可以查询表锁定。
Oracle锁表常用sql语句: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess ...
查询锁表语句: select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid; 杀掉查到的进程: alter system ...
日常系统在使用中,往往出现表被锁了导致业务处理不下去,可以使用脚本中命令查询对应的线程,然后通过kill 杀掉,解锁。生产环境慎用。。。。
使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ? 两步走: 1、查找出被锁对象的会话ID和序列号 执行如下SQL: -- 查询出被锁对象,并提供 kill 脚本 SELECT S.SID, S.MACHINE, O.OBJECT_...
当oracle出现死锁时,查询死锁的内容,kill死锁进程。
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他...
查询锁表 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid ; 杀表(程序内杀) alter system kill ...
oracle中去除锁表命令
有效关闭Oracle死锁进程,和释放状态为killed的session