Oracle锁处理、解锁方法
1、查询锁情况
- select sid,serial#,event,BLOCKING_SESSION from v$session where event like '%TX%';
2、根据SID查询具体信息(可忽略)
- select sid,serial#,username,machine,blocking_session from v$session where sid=<SID>;
3、杀掉会话
#根据1和2中查到的SID和SERIAL# 定位会话,并杀掉
- ALTER SYSTEM DISCONNECT SESSION '<SID>,<SERIAL>' IMMEDIATE;
或
- ALTER SYSTEM KILL SESSION '<SID>,<SERIAL>';
或
- select p.SPID,p.USERNAME,s.SERIAL#,p.PROGRAM
- from v$process p,v$session s
- where p.ADDR=s.PADDR
- AND s.sid='<SID>';
- kill -9 <PID>;
附件:
#查询阻塞脚本
- col waiting_session for a20
- col lock_type for a15
- col mode_requested for a10
- col mode_held for a10
- col lock_id1 for a10
- col lock_id2 for a10
- set linesize 120
- set pagesize 999
- with dba_locks_cust as
- (SELECT inst_id||'_'||sid session_id,
- DECODE (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 Invalidation',
- 'LS', 'Log Start or Switch',
- 'RW', 'Row Wait',
- 'SQ', 'Sequence Number',
- 'TE', 'Extend Table',
- 'TT', 'Temp Table',
- TYPE)
- lock_type,
- DECODE (lmode,
- 0, 'None', /* Mon Lock equivalent */
- 1, 'Null', /* N */
- 2, 'Row-S (SS)', /* L */
- 3, 'Row-X (SX)', /* R */
- 4, 'Share', /* S */
- 5, 'S/Row-X (SSX)', /* C */
- 6, 'Exclusive', /* X */
- TO_CHAR (lmode))
- mode_held,
- DECODE (request,
- 0, 'None', /* Mon Lock equivalent */
- 1, 'Null', /* N */
- 2, 'Row-S (SS)', /* L */
- 3, 'Row-X (SX)', /* R */
- 4, 'Share', /* S */
- 5, 'S/Row-X (SSX)', /* C */
- 6, 'Exclusive', /* X */
- TO_CHAR (request))
- mode_requested,
- TO_CHAR (id1) lock_id1,
- TO_CHAR (id2) lock_id2,
- ctime last_convert,
- DECODE (block,
- 0, 'Not Blocking', /* Not blocking any other processes */
- 1, 'Blocking', /* This lock blocks other processes */
- 2, 'Global', /* This lock is global, so we can't tell */
- TO_CHAR (block))
- blocking_others
- FROM gv$lock
- ),
- lock_temp as
- (select * from dba_locks_cust),
- lock_holder as
- (
- select w.session_id waiting_session,
- h.session_id holding_session,
- w.lock_type,
- h.mode_held,
- w.mode_requested,
- w.lock_id1,
- w.lock_id2
- from lock_temp w, lock_temp h
- where h.blocking_others in ('Blocking','Global')
- and h.mode_held != 'None'
- and h.mode_held != 'Null'
- and w.mode_requested != 'None'
- and w.lock_type = h.lock_type
- and w.lock_id1 = h.lock_id1
- and w.lock_id2 = h.lock_id2
- ),
- lock_holders as
- (select waiting_session,holding_session,lock_type,mode_held,
- mode_requested,lock_id1,lock_id2
- from lock_holder
- union all
- select holding_session, null, 'None', null, null, null, null
- from lock_holder
- minus
- select waiting_session, null, 'None', null, null, null, null
- from lock_holder
- )
- select lpad(' ',3*(level-1)) || waiting_session waiting_session,
- lock_type,
- mode_requested,
- mode_held,
- lock_id1,
- lock_id2
- from lock_holders
- connect by prior waiting_session = holding_session
- start with holding_session is null;
查询阻塞脚本
Oracle锁处理、解锁方法的更多相关文章
- oracle锁表问题解决方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp52 Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程 ...
- oracle 锁表/解锁 杀进程
一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE中杀不 ...
- oracle锁表+解锁
一.锁表: LOCK TABLE tablename IN EXCLUSIVE MODE; 二.解锁 * 1.首先用dba账户登录数据库 * * 2.查出被锁定的对象 * select * from ...
- oracle锁表解决方法
SQL> select session_id from v$locked_object; SESSION_ID----------142 SQL> SELECT sid, serial#, ...
- ORACLE锁表解锁
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...
- Oracle锁表查询和解锁方法
数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...
- oracle 用户被锁定解锁方法
修改了用户密码,第二天过来发现用户被锁定,晚上走的时候还好好的 . alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED; alter ...
- oracle查询锁表解锁语句
--oracle查询锁表解锁语句--首先要用dba权限的用户登录,建议用system,然后直接看sql吧 --1. 如下语句 查询锁定的表: SELECT l.session_id sid, s.se ...
- oracle的 表、 procedure、package等对象被锁,处理方法
1.0 oracle中表被锁,处理方法 select t4.object_name, t3.spid, t1.oracle_username, t1.os_user_name from v$pro ...
- Oracle锁表与解锁 对象锁与解锁
阅读目录 锁表与解锁 查看锁表进程SQL语句 解锁 对象锁与解锁 回到顶部 锁表与解锁 查看锁表进程SQL语句 select * from v$session t1, v$locked_object ...
随机推荐
- C#可遍历的集合
public class Product { /// <summary> /// 自增ID /// </summary> public int ID { get; set; } ...
- IDEA 的缓存问题
当IDEA还是使用以前的配置时,大概率是缓存问题,查看target,里面的内容就是编译好的东西,问题都是出自这里.
- Mac系统操作指南
OSX 采用的Unix文件系统,所有文件都挂在跟目录“ /” 下面,所以不在要有Windows 下的盘符概念.比如什么“C:”你在桌面上看到的硬盘都挂在 /Volumes 下. 比如接上个叫做“XX” ...
- c# 设计模式 之:工厂模式之---工厂模式
1.uml类图: 实现和依赖关系: 实现: SportFactory.JeepFactory.HatchbackFactory 实现 IFactory 接口 SportCar.JeepCar.Hatc ...
- 书籍管理系统 -----没有form组件
urls: from django.contrib import admin from django.urls import path,re_path from first import views ...
- Effective C++(10) 重载赋值操作符时,返回该对象的引用(retrun *this)
问题聚焦: 这个准则比较简短,但是往往就是这种细节的地方,可以提高你的代码质量. 细节决定成败,让我们一起学习这条重载赋值操作符时需要遵守的准则吧. 还是以一个例子开始: Demo // 连锁赋值 x ...
- Python学习---Django误删除sql表后,如何创建数据
误删除sql表后,怎么创建数据? 仅仅适合单表,多表因为涉及约束, python mangage.py makemigrations --> 生成migrations目录和根数据库对应的sql ...
- 企业级Apache详解
安装Apache #Apache安装 rpm -qa|grep httpd yum install httpd #2编译安装: -->推荐安装 cd /root/software yum -y ...
- 通过Windows Server 2008 R2建立iSCSI存储
名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...
- How to Remove A Service Entry From Win10 Service List
Warning Please do this operation CAREFULLY, otherwise you may get something wrong with your system. ...