查看oracle死锁进程并结束死锁

查看oracle死锁进程并结束死锁

摘自: http://sqcjy111.iteye.com/blog/1183928

 

查看锁表进程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,1429,即可解除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 1: C:\>sqlplus hxg/hxg 
SQL> select * from scott.t; A B                    C ---------- -------------------- --------------------        111 aa                   bb        222 hello                world 
SQL> update scott.t  set b='good' where a=222; 
已更新 1 行。 
session 2: C:\>sqlplus scott/tiger 
SQL> select * from scott.t; A B                    C ---------- -------------------- --------------------        111 aa                   bb        222 hello                world 
SQL> update t set b='asdfds' where a=222; 
挂起。。。。 
session 3: 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#'; 

 

posted on 2015-01-29 16:55 Alfa 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wuyifu/p/4260335.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python科学坐标图绘制的四个要素_Python3.0科学计算学习之绘图(四)

绘制三维图&#xff1a;mplot3d工具包提供了点、线、等值线、曲面和所有其他基本组件以及三维旋转缩放的三维绘图。1.散点的三维数据图from mpl_toolkits.mplot3d import axes3d #需要从mplot3d模块中导入axes 3D类型import numpy as npimport matplotlib.p…

linux shell tr命令,linux shell tr命令详解

tr命令是linux下的一个命令&#xff0c;那么它的语法和用途是什么呢?下面由学习啦小编为大家整理了linux shell tr命令的相关知识&#xff0c;希望大家喜欢!linux shell tr命令tr是translate的简写&#xff0c;亦即翻译&#xff0c;但是遗憾的是&#xff0c;它不能翻译句子&am…

PHP 函数:intval()

intval 变量转成整数类型。 语法: int intval(mixed var, int [base]); 返回值: 整数 函数种类: PHP 系统功能 内容说明:本函数可将变量转成整数类型。可省略的参数 base 是转换的基底&#xff0c;默认值为 10。转换的变量 var 可以为数组或类之外的任何类型变量。转载于:htt…

python桌面应用html_是否将Python后端与HTML / CSS / JS用户界面集成到桌面应用程序? - javascript...

在创建桌面应用程序时&#xff0c;如何或将Python代码与HTML / CSS / JS集成为用户界面&#xff0c;该如何做&#xff1f;一个简单的例子&#xff1b;如果我想用Python创建一个打印“ Hello World&#xff01;”的函数并使用HTML / CSS / JS创建用户界面(使其精美&#xff0c;也…

linux中按行读取文件,Linux按行读取文件内容

方法1&#xff1a;while循环中执行效率最高&#xff0c;最常用的方法。function while_read_LINE_bottm(){While read LINEdoecho $LINEdone < $FILENAME}#!/bin/bashwhile read linedoecho $linedone < filename(待读取的文件)注释&#xff1a;习惯把这种方式叫做read釜…

Visual C++ 基础数据类型的转换

16.1如何将基本数据类型转换成CString类型 用CString的Format方法 void CDemoView::OnDraw(CDC* pDC) {int a 100;double b 1.23;//将整型转换成CStringCString str1 _T("");str1.Format(_T("%d"), a);//将实型转换成CStringCString str2 _T("&qu…

python 片段_python片段程序

from PIL import Imageimport re#给图片添加一层蒙版&#xff0c;可以设置位置&#xff0c;尺寸&#xff0c;颜色&#xff0c;透明度def img_add_glass(img,new_imgglass,glass_factor0.3,glass_color#ffffff,glass_x0,glass_y0,glass_width300,glass_height100):imageobjectif…

linux ruby 安装路径,Linux(CentOS 7)安装ruby

首先下载Linux版ruby源码“ruby-2.7.0.tar.gz”&#xff0c;上传并解压到/usr/local路径下&#xff1a;tar -xzvf ruby-2.7.0.tar.gz安装编译依赖工具&#xff0c;gcc、gcc-c、gdbm-devel、readline-devel和openssl-devel&#xff1a;yum install gccyum install gcc-cyum inst…

开心一笑

1转载于:https://www.cnblogs.com/luquanmingren/p/4261912.html

酱油和gbt酱油哪个好_酱油越贵越好?认准瓶身这4处,轻松挑到好酱油!

买酱油这件事&#xff0c;爷叔阿姨们都不陌生。现在市面上酱油品种很多&#xff0c;除了普通的生抽、老抽以外&#xff0c;还有些别的口味&#xff0c;比如海鲜酱油、菌菇酱油等等&#xff0c;价格比普通的还高出不少&#xff0c;这些酱油真的更鲜更好吗&#xff1f;买酱油的2大…

linux网站465端口是什么端口,发送端口25,465,587端口疑问解答

25端口(SMTP)&#xff1a;25端口为SMTP(Simple Mail Transfer Protocol&#xff0c;简单邮件传输协议)服务所开放的&#xff0c;是用于发送邮件。如今绝大多数邮件服务器都使用该协议。当你给别人发送邮件时&#xff0c;你的机器的某个动态端口(大于1024)就会与邮件服务器的25号…

分析DuxCms之AdminController

1 2 /**3 * 后台模板显示 调用内置的模板引擎显示方法&#xff0c;4 * access protected5 * param string $templateFile 指定要调用的模板文件6 * return void7 */8 protected function adminDisplay($templateFile) {9 //获取菜单 10 …

在python语言中不能作为变量名的是什么_4、 在 Python 中可以使用 if 作为变量名。 (1.0分)_学小易找答案...

【判断题】2、 Python 变量使用前必须先声明 , 并且一旦声明就不能在当前作用域内改变其类型。 (1.0分)【填空题】Python语句.join(list(hello world!))执行的结果是____________________。 (1.0分)【填空题】Python语句list(range(1,10,3))执行结果为___________________。 (1…

hdu 3572 Task Schedule 网络流

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3572Our geometry princess XMM has stoped her study in computational geometry to concentrate on her newly opened factory. Her factory has introduced M new machines in order to process the coming …

linux格式化ext4分区工具,linux学习笔记-磁盘分区、格式化与挂载

磁盘分区、格式化与挂载磁盘分区、格式化与挂载一、给磁盘分区分区工具介绍fdisk:分区时只修改分区表信息&#xff1b;操作简单&#xff1b;不支持大于2T的分区&#xff1b;只能使用交互式来分区。parted:直接将分区信息写入磁盘&#xff1b;操作比较复杂&#xff1b;支持大于2…

uml 时序图_程序猿都应学习的语言:看 25 张图学 UML

作者 | 逸珺责编 | 屠敏来源 | 嵌入式客栈作为程序猿都最好掌握的一门语言&#xff0c;那就是UML(Unified Modeling Language)&#xff0c;统一建模语言(UML)是软件工程领域中一种通用的开发建模语言&#xff0c;旨在提供一种可视化系统设计的标准方法。是开发人员、系统设计人…

was6 linux 卸载,重新安装was61

昨天折腾一天&#xff0c;或者是少安装了compat-libstdc-33包导致app2出不来安装向导&#xff0c;或者是修改了主机名导致./addNode.sh xxx执行异常&#xff0c;诸多不爽后&#xff0c;决定从头再来&#xff01;手动删除/was下所有文件&#xff0c;导致再次安装时&#xff0c;报…

新服务器的配置

新服务器的安装好那三款软件后还是打不开会报错&#xff0c;去服务器管理网站增加执行权即可。 转载于:https://www.cnblogs.com/longhun/p/4266665.html

最大公约数python语言算法_使用Python求解最大公约数的实现方法

这篇文章主要介绍了使用Python求解最大公约数的实现方法,包括用Python表示欧几里得算法和Stein算法的求解原理.1. 欧几里德算法欧几里德算法又称辗转相除法&#xff0c; 用于计算两个整数a, b的最大公约数。其计算原理依赖于下面的定理&#xff1a;定理&#xff1a; gcd(a, b) …

Linux下好用的日志库,我使用過的Linux命令之tailf - 跟蹤日志文件/更好的tail -f版本...

用途說明tailf命令幾乎等同於tail -f&#xff0c;嚴格說來應該與tail --followname更相似些。當文件改名之后它也能繼續跟蹤&#xff0c;特別適合於日志文件的跟蹤(follow the growth of a log file)。與tail -f不同的是&#xff0c;如果文件不增長&#xff0c;它不會去訪問磁盤…