查看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 用Fragment创建一个选项卡
本文结合之前的动态创建fragment来进行一个实践,来实现用Fragment创建一个选项卡 本文地址:http://www.cnblogs.com/wuyudong/p/5898075.html,转 ...
- 【读书笔记】iOS网络-负载
负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web S ...
- Android点击空白处,隐藏软键盘
在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity ...
- IntelliJ IDEA 使用总结[zz]
本文转自:http://cowboy-bebop.iteye.com/blog/1035550,仅做稍微整理,转载请注明出处. 1. IDEA内存优化 因机器本身的配置而配置: \IntelliJ I ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
- [PL/SQL]使用PL/SQL实现ORACLE的Excel格式导入导出
注:教程所使用的PL/SQL Developer版本为10版本 1.oracle导出excel格式 第一步,在pl/sql窗口查询出你想要导出的数据. 第二步,选择你想导出的数据,然后右键" ...
- Windows下好用到必须开机自启的小工具
折腾过linux,黑苹果,最后还是回到了盖茨大叔的windows.得出的结论是,日常使用的话,折腾Linux还不如把精力去拿去折腾windows.分享下折腾的成果,介绍下一些很不错的小工具. ...
- Tomcat:基于HTTP协议的Connector配置
Tomcat Connector 是请求接收环节与请求处理环节的连接器,具体点说,就是将接收到的请求传递给Tomcat WEB容器进行处理. Tomcat可以处理的不同协议的请求,例如HTTP协议.A ...
- Android横竖屏切换重载问题与小结
(转自:http://www.cnblogs.com/franksunny/p/3714442.html) (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com ...
- eclipse设置显示代码行数(转)
(转自:http://jingyan.baidu.com/article/b2c186c89b7023c46ef6ff27.html) 载入eclipse的主页面,默认以英文版的eclipse为例 点 ...