查看oracle死锁进程并结束死锁
查看锁表进程SQL语句1:
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
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
查看锁表进程SQL语句2:
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
杀掉锁表进程:
如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,,即可解除LOCK
alter system kill session '738,1429';
用这个可以查: select s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode, 'ALTER SYSTEM KILL SESSION '''||s.sid||', '||s.serial#||''';' Command from v$locked_object l,v$session s,all_objects o where l.session_id=s.sid and l.object_id=o.object_id 可以查看哪台机器哪个用户锁了记录, 其中command是用来杀掉锁住记录的session
******************************************************************************************************************
SELECT A.OBJECT_ID, B.OBJECT_NAME, A.SESSION_ID, A.ORACLE_USERNAME, A.OS_USER_NAME, A.PROCESS, A.LOCKED_MODE FROM V$LOCKED_OBJECT A, DBA_OBJECTS B WHERE A.OBJECT_ID = B.OBJECT_ID;
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;
ALTER SYSTEM KILL SESSION 'sid, serial#';
********************************************************************************************************************
session : C:\>sqlplus hxg/hxg
SQL> select * from scott.t;
A B C ---------- -------------------- -------------------- 111 aa bb 222 hello world
SQL;
已更新 行。
session : C:\>sqlplus scott/tiger
SQL> select * from scott.t;
A B C ---------- -------------------- -------------------- 111 aa bb 222 hello world
SQL;
挂起。。。。
session : C:\>sqlplus "system/*** as sysdba"
SQL> select sid,serial#,username,status from v$session;
SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 146 25 SYS ACTIVE 147 11 SYS INACTIVE 148 2 HXG INACTIVE 150 5 SCOTT ACTIVE 151 1 ACTIVE 154 1 ACTIVE 159 6 ACTIVE 160 1 ACTIVE 161 1 ACTIVE 162 1 ACTIVE 163 1 ACTIVE
SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 164 1 ACTIVE 165 1 ACTIVE 166 1 ACTIVE 167 1 ACTIVE 168 1 ACTIVE 169 1 ACTIVE 170 1 ACTIVE
已选择18行。
SQL> alter system kill session '148,2';
系统已更改。
SQL> select sid,serial#,username,status from v$session;
SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 146 25 SYS ACTIVE 147 11 SYS INACTIVE 148 2 HXG KILLED 150 5 SCOTT INACTIVE 151 1 ACTIVE 154 1 ACTIVE 159 6 ACTIVE 160 1 ACTIVE 161 1 ACTIVE 162 1 ACTIVE 163 1 ACTIVE
SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 164 1 ACTIVE 165 1 ACTIVE 166 1 ACTIVE 167 1 ACTIVE 168 1 ACTIVE 169 1 ACTIVE 170 1 ACTIVE
已选择18行。
SQL>
select V$SESSION.sid,v$session.SERIAL#,v$process.spid,
rtrim(object_type) object_type,rtrim(owner) || '.' || object_name object_name,
decode(lmode, 0, 'None',
1, 'Null',
2, 'Row-S',
3, 'Row-X',
4, 'Share',
5, 'S/Row-X',
6, 'Exclusive', 'Unknown') LockMode,
decode(request, 0, 'None',
1, 'Null',
2, 'Row-S',
3, 'Row-X',
4, 'Share',
5, 'S/Row-X',
6, 'Exclusive', 'Unknown') RequestMode
,ctime, block b,
v$session.username,MACHINE,MODULE,ACTION,
decode(A.type,
'MR', 'Media Recovery',
'RT','Redo Thread',
'UN','User Name',
'TX', 'Transaction',
'TM', 'DML',
'UL', 'PL/SQL User Lock',
'DX', 'Distributed Xaction',
'CF', 'Control File',
'IS', 'Instance State',
'FS', 'File Set',
'IR', 'Instance Recovery',
'ST', 'Disk Space Transaction',
'TS', 'Temp Segment',
'IV', 'Library Cache Invalida-tion',
'LS', 'Log Start or Switch',
'RW', 'Row Wait',
'SQ', 'Sequence Number',
'TE', 'Extend Table',
'TT', 'Temp Table',
'Unknown') LockType
from (SELECT * FROM V$LOCK) A, all_objects,V$SESSION,v$process
where A.sid > 6
and object_name<>'OBJ$'
and A.id1 = all_objects.object_id
and A.sid=v$session.sid
and v$process.addr=v$session.paddr;
同样也是通过写sql从数据字典里查出来。
// SELECT-SQL1
// 功能:检查被加锁的对象
//select obj.OWNER||'.'||obj.OBJECT_NAME as OBJ_NAME, // 对象名称(已经被锁住)
// obj.SUBOBJECT_NAME as SUBOBJ_NAME, // 子对象名称(已经被锁住)
// obj.OBJECT_ID as OBJ_ID, // 对象ID
// obj.OBJECT_TYPE as OBJ_TYPE, // 对象类型
// lock_obj.SESSION_ID as SESSION_ID, // 会话SESSION_ID
// lock_obj.ORACLE_USERNAME as ORA_USERNAME, // ORACLE系统用户名称
// lock_obj.OS_USER_NAME as OS_USERNAME, // 操作系统用户名称
// lock_obj.PROCESS as PROCESS // 进程编号
//from
// ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
// v$locked_object lock_obj
//where obj.object_id=lock_obj.object_id;
//// SELECT-SQL2
//// 功能:检查被加锁的对象以及加锁的会话信息
//// 如果需要手工解除锁,请对照要解锁的对象,记下SESSION_ID,SERIAL#
//// 项,然后运行下面的ALTER-SQL1
//select LOCK_INFO.OWNER||'.'||LOCK_INFO.OBJ_NAME as OBJ_NAME, // 对象名称(已经被锁住)
// LOCK_INFO.SUBOBJ_NAME as SUBOBJ_NAME, // 子对象名称(已经被锁住)
// SESS_INFO.MACHINE as MACHINE, // 机器名称
// LOCK_INFO.SESSION_ID as SESSION_ID, // 会话SESSION_ID
// SESS_INFO.SERIAL# as SERIAL#, // 会话SERIAL#
// LOCK_INFO.ORA_USERNAME as ORA_USERNAME, // ORACLE系统用户名称
// LOCK_INFO.OS_USERNAME as OS_USERNAME, // 操作系统用户名称
// LOCK_INFO.PROCESS as PROCESS, // 进程编号
// LOCK_INFO.OBJ_ID as OBJ_ID, // 对象ID
// LOCK_INFO.OBJ_TYPE as OBJ_TYPE, // 对象类型
// SESS_INFO.LOGON_TIME as LOGON_TIME, // 登录时间
// SESS_INFO.PROGRAM as PROGRAM, // 程序名称
// SESS_INFO.STATUS as STATUS, // 会话状态
// SESS_INFO.LOCKWAIT as LOCKWAIT, // 等待锁
// SESS_INFO.ACTION as ACTION, // 动作
// SESS_INFO.CLIENT_INFO as CLIENT_INFO // 客户信息
//
//from
// (
// select obj.OWNER as OWNER,
// obj.OBJECT_NAME as OBJ_NAME,
// obj.SUBOBJECT_NAME as SUBOBJ_NAME,
// obj.OBJECT_ID as OBJ_ID,
// obj.OBJECT_TYPE as OBJ_TYPE,
// lock_obj.SESSION_ID as SESSION_ID,
// lock_obj.ORACLE_USERNAME as ORA_USERNAME,
// lock_obj.OS_USER_NAME as OS_USERNAME,
// lock_obj.PROCESS as PROCESS
// from
// ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
// v$locked_object lock_obj
// where obj.object_id=lock_obj.object_id
// ) LOCK_INFO,
// (
// select SID,
// SERIAL#,
// LOCKWAIT,
// STATUS,
// PROGRAM,
// ACTION,
// CLIENT_INFO,
// LOGON_TIME,
// MACHINE
// from v$session
// ) SESS_INFO
//where LOCK_INFO.SESSION_ID=SESS_INFO.SID ;
//// 看清楚了 下面就可以 杀死它了。
// ALTER-SQL1
// 功能:杀死会话(SESSION_ID,SERIAL#),可以手工解除锁
// 请手工修改SESSION_ID,SERIAL#为相应值
// 注意:本功能慎重使用,有一定的破坏性,该SQL可以断开客户机和服务器的连接
//ALTER SYSTEM KILL SESSION 'SESSION_ID,SERIAL#';
查看oracle死锁进程并结束死锁的更多相关文章
- 【ORACLE】查看死锁进程并结束死锁的脚本
--共享锁:Share:排他锁:Exclusive:行共享锁:Row-S:行排他锁:Row-X select V$SESSION.sid,v$session.SERIAL#,v$process.spi ...
- Oracle删除死锁进程的方法
本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码代码如下: SELECT dob.OBJECT_NAME T ...
- sql server 查看表的死锁和Kill 死锁进程
查询出来 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableNa ...
- Sql server 查看锁和Kill 死锁进程
死锁的概念 死锁就是两个或多个会话(SPID)相互请求对方持有的锁资源,导致循环等待的情况.下面两种方法都是用来粗暴的解决死锁的. # 已知阻塞进程ID KILL ID SELECT blocking ...
- sqlserver查看死锁进程工具脚本p_lockinfo
/* -- 处理死锁 -- 查看当前进程,或死锁进程,并能自动杀掉死进程 -- 因为是针对死的,所以如果有死锁进程,只能查看死锁进程 -- 当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程 ...
- sql server 查询和Kill死锁进程
查询死锁进程语句 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tab ...
- Windows下查看进程及结束进程命令[转]
Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP 0.0.0.0:8080 ...
- Windows下查看8080进程及结束进程命令
Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP 0.0.0.0:8080 ...
- 查看Oracle数据库被锁住的表,删除锁表的进程
锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name, lo.locked_mode, lo. ...
随机推荐
- Android 调用已安装市场,进行软件评分的功能实现
Uri uri = Uri.parse("market://details?id="+getPackageName()); Intent intent = new Intent(I ...
- Android之SeekBar定制
1.SeekBar样式定制 xml文件中: <SeekBar android:id="@+id/seekbar_voice" ...
- Scrum三大角色特点
灵感来自于一段冷笑话: 一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡 ...
- 你真的了解UITableViewCell重用吗?
一:首先查看一下关于UITableViewCell重用的定义 - (nullable __kindof UITableViewCell *)dequeueReusableCellWithIdentif ...
- Mac wifi已打开但尚未连接到网络
把网络偏好设置 里面的询问新网络 关闭了 然后 重启电脑 试一下 应该就可以了
- iOS 跳转到系统的设置界面
跳到健康设置 上网找了一下 你会发现很难找到.代码如下 不信你试试 . NSURL *url = [NSURL URLWithString:@"prefs:root=Privacy& ...
- iOS开发笔记14:微博/微信登录与分享、微信/支付宝支付
产品中接入了微博/微信的第三方登录分享功能.微信和支付宝的第三方支付功能,之前在开发过程中涉及到这些部分,于是抽空将接入过程梳理了一遍. 1.微博.微信.支付宝SDK相关接入设置 (1)微博SDK S ...
- zend studio 9.0.4 破解、汉化和字体颜色及快捷键相关设置
转载:http://www.penglig.com/post-45.html 下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:h ...
- Comparable接口与Comparator接口的区别
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...
- Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)
直奔主题 安装完成后,先开启用户配置 1. 系统管理-->配置权限 2. 启用安全,并选中"安全矩阵" 如上,搞定: 可以按用户去设置各项目的操作权限了: 轻松实现,jen ...