from:http://hi.baidu.com/richard_cxs/blog/item/841e84af361dd1cf7cd92a88.html
原文出处:http://www.itpub.net/863610.html
ORACLE锁的总结
下午无事,整理了一下ORACLE锁的东西
------------------------------------------------------------------------------------------------------------
v$lock视图的各个列及其说明
ADDR
RAW(4)
在内存中锁定的对象的地址
KADDR
RAW(4)
在内存中锁的地址
SID
NUMBER
保持或申请锁的会话的标识号
TYPE
VARCHAR2(2)
锁的类型。
TX=行锁或事务锁;TM=表锁或DML锁;UL=PL/SQL用户锁
ID1
NUMBER
锁的第1标识号。
如果锁的类型是TM,该值表示将要被锁定的对象的标识号;
如果锁的类型是TX,该值表示撤销段号码的十进制值
ID2
NUMBER
锁的第2标识号。
如果锁的类型是TM,该值为0;
如果锁的类型是TX,该值表示交换次数
LMODE
NUMBER
会话保持的锁的模式。
0=None;1=Null;2=Row-S (SS);3=Row-X (SX);
4=Share;5=S/Row-X (SSX);6=Exclusive
REQUEST
NUMBER
会话申请的锁的模式。与LMODE中的模式相同
CTIME
NUMBER
以秒为单位的,获得当前锁(或转换成当前锁的模式)以来的时间
BLOCK
NUMBER
当前锁是否阻塞另一个锁。
0=不阻塞;1=阻塞
V$LOCKED_OBJECT视图的各个列及其说明
列名
数据类型
说明
XIDUSN
NUMBER
撤销段号码
XIDSLOT
NUMBER
被锁定的对象在撤销段中的位置
XIDSQN
NUMBER
序列号
OBJECT_ID
NUMBER
被锁定的对象的标识号
SESSION_ID
NUMBER
会话的标识号
ORACLE_USERNAME
VARCHAR2(30)
Oracle用户名
OS_USER_NAME
VARCHAR2(30)
操作系统用户名
PROCESS
VARCHAR2(12)
操作系统进程标识号
LOCKED_MODE
NUMBER
对象被锁定的模式。
0=None;1=Null;2=Row-S (SS);3=Row-X (SX);
4=Share;5=S/Row-X (SSX);6=Exclusive
DBA_LOCKS视图的各个列及其说明
列名
数据类型
说明
SESSION_ID
NUMBER
保持或申请锁的会话的标识号
LOCK_TYPE
VARCHAR2(26)
锁的类型
MODE_HELD
VARCHAR2(40)
保持的锁的模式
MODE_REQUESTED
VARCHAR2(40)
申请的锁的模式
LOCK_ID1
VARCHAR2(40)
锁的第1标识号
LOCK_ID2
VARCHAR2(40)
锁的第2标识号
LAST_CONVERT
NUMBER
以秒为单位的,获得当前锁(或转换成当前锁的模式)以来的时间
BLOCKING_OTHERS
VARCHAR2(40)
当前锁是否阻塞另一个锁。
Not Blocking=不阻塞;Blocking=阻塞
DBA_WAITERS视图的各个列及其说明
列名
数据类型
说明
WAITING_SESSION
NUMBER
等待锁的会话(被阻塞的会话)的标识号
HOLDING_SESSION
NUMBER
保持锁的会话(阻塞的会话)的标识号
LOCK_TYPE
VARCHAR2(26)
锁的类型
MODE_HELD
VARCHAR2(40)
保持的锁的模式
MODE_REQUESTED
VARCHAR2(40)
申请的锁的模式
LOCK_ID1
NUMBER
锁的第1标识号
LOCK_ID2
NUMBER
锁的第2标识号
DBA_BLOCKERS视图的各个列及其说明
列名
数据类型
说明
HOLDING_SESSION
NUMBER
显示阻塞了其他会话的那些会话的标识号
-----------------------------------------------------------------------------------------------------
由sys用户通过查询与锁相关的视图来了解锁,了解阻塞会话与被阻塞会话的sid、serial#、用户名及其所使用的DML操作语句。
-----------------------------------------------------------------------------------------------------
set pagesize 40 linesize 150
column blockers format a45
column waiters format a45
select '阻塞者('||sb.sid||':'||sb.serial#||'-'||sb.username||')-'||qb.sql_text blockers,
'等待者('||sw.sid||':'||sw.serial#||'-'||sw.username||')-'||qw.sql_text waiters
from v$lock lb,v$lock lw,v$session sb,v$session sw,v$sql qb,v$sql qw
where lb.sid=sb.sid
and lw.sid=sw.sid
and sb.prev_sql_addr=qb.address
and sw.sql_address=qw.address
and lb.id1=lw.id1
and sb.lockwait is null
and sw.lockwait is not null
and lb.block=1;
-------------------------------------------------------------------------------------------------------
要了解哪些数据库用户的会话锁定了对象、锁定的模式是什么、对应的操作系统用户是在哪台计算机上进行操作的、被锁定的对象及其类型等信息
-------------------------------------------------------------------------------------------------------
set pagesize 40 linesize 150
column username format a9
column sid format 9999
column serial# format 99999999
column mode_locked format a12
column os_user_name format a16
column object_name format a12
column object_type format a12
select s.username,s.sid,s.serial#,
decode(lo.locked_mode,
0,'none',
1,'null',
2,'row-s(ss)',
3,'row-x(sx)',
4,'share',
5,'s/row-x(ssx)',
6,'exclusive',
to_char(lo.locked_mode)) mode_locked,
lo.os_user_name,
do.object_name,do.object_type
from v$session s,v$locked_object lo,dba_objects do
where
lo.object_id=do.object_id;
--------------------------------------------------------------------------------------------------------
要了解阻塞者会话的sid、serial#信息
--------------------------------------------------------------------------------------------------------
set pagesize 40 linesize 150
column username format a9
column sid format 9999
column serial# format 99999999
select s.username,s.sid,s.serial#
from v$session s,dba_blockers dbab
where s.sid=dbab.holding_session;
---------------------------------------
解锁
---------------------------------------
alter system kill session 'sid,serial#';
分享到:
相关推荐
对于Oracle锁的一些理论总结 对于Oracle锁的一些理论总结对于Oracle锁的一些理论总结
Oracle五种表级排他锁的总结和归纳行级排他锁 (Row Exclusive Table Lock,RX)
Oracle的锁机制归纳总结,该文档详细介绍了各种档的使用方法和优缺点
oracle中锁和表分区 详细的介绍,自己学的时候总结的。希望对你有点帮助哦
Oracle sql文总结(case when,查看执行计画,文本操作,查看锁表及解锁,游标)
数据库锁表关系、源头等一系列锁表问题查询及解决;查看oracle数据库最近执行了哪些sql语句;查询oracle效率底下的语句;oracle查询最占用资源的查询;oracle从磁盘、使用频率、缓冲等分析性能语句;
12.2 用锁控制并发存取 12.2.1 为何加锁 12.2.2 加锁的方法 第13章 Oracle数据库的安全管理 13.1 Oracle数据库安全性概述 13.1.1 Oracle 11g的安全性体系 13.1.2 Oracle 11g的安全性机制 13.2 用户...
Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装)...49. 怎样快速查出Oracle 数据库中的锁等待 50. 怎样在SQLPlus中使用 '&' 来实现自定义参数变量? 51. 怎样在查询记录时给记录加锁 52. 自动备份Oracle数据库
改课件共263页,从安装到oracle详细的解读,罗列oracle大纲中涉及到...4.锁、并发、事务 5.表、索引、分区 6.数据类型、函数 7.SQL、视图 8.PL/SQL 9.存储过程、函数、触发器 10.备份恢复 11.ERWIN 12.linux基础、shell
自己总结的oracle资料,包括:针对自带表的操作,数据库的安装,修改密码,解锁用户。
Ⅰ.oracle itcast 1 1.oralce解锁步骤 2 2.oralce开发工具 3 3.oracle常用sql plus命令 4 4.oracle用户管理 5 (1)权限 5 (2)角色 5 (3)方案(schema) 5 (4)用户管理的综合案例 7 (5)账号锁定 8 (6)账号解锁 8 (7)终止...
(1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验...
oracle常用语句语法加实例文档,包括从工具介绍,用户解锁,建库建表,查询,函数,创建存储过程,函数,包,常用函数介绍,和oracle卸载详细方法,总文档77页
在开发过程中遇到表被锁的情况,随后我去网上多方查看,发现解决办法都大同小异,解决问题后,总结了一下,供大家参考
(1)我们在安装Oracle的时候最后一步有...总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。如果你想了解更多相关内容请查看下面相关链接
第十章:Oracle的事务和锁 第十一章:索引 第十二章:约束 第十三章:视图 第十四章:同义词 第十五章:序列 第三部分:SQL语言的扩展 第十六章:INSERT语句总结 第十七章:DML和DDL语句的其他用法 第十八...
火龙果软件工程技术中心 本文内容包括:引言DB2多粒度封锁机制介绍Oracle多粒度锁机制介绍DB2多粒度封锁机制的监控Oracle多粒度封锁机制的监控DB2多粒度封锁机制示例总结结束语在实际的生产运行环境中,笔者在国内...
都是工作中的总结,遇到的问题汇总 如:oracle乱码,oracle解锁 常用sql语法大全等等 希望对大家有用哈
针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,...10.7 总结 525
17.7 Oracle的锁机制 36 17.8事务不提交的后果 36 17.9回滚事务rollback 36 17.10保留点savepoint 36 十八、 数据库对象:视图view 37 18.1带子查询的create table 37 18.2带子查询的insert 37 18.3定义缺省值:...