查看: 7578|回复: 11

ORACLE锁的总结

[复制链接]
论坛徽章:
68
2012新春纪念徽章
日期:2012-01-04 11:51:22奥运会纪念徽章:举重
日期:2012-08-02 22:17:14ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:312013年新春福章
日期:2013-02-25 14:51:24慢羊羊
日期:2015-03-04 14:51:352015年新春福章
日期:2015-03-06 11:57:312015年新春福章
日期:2015-06-11 12:54:06
跳转到指定楼层
1#
发表于 2007-9-29 16:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下午无事,整理了一下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#';
论坛徽章:
23
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:猴
日期:2009-07-21 13:33:18ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14
2#
发表于 2007-9-29 16:10 | 只看该作者
好,正需要,谢谢楼主奉献

使用道具 举报

回复
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25
3#
发表于 2007-9-29 16:15 | 只看该作者
顶一下。

使用道具 举报

回复
论坛徽章:
68
2012新春纪念徽章
日期:2012-01-04 11:51:22奥运会纪念徽章:举重
日期:2012-08-02 22:17:14ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:312013年新春福章
日期:2013-02-25 14:51:24慢羊羊
日期:2015-03-04 14:51:352015年新春福章
日期:2015-03-06 11:57:312015年新春福章
日期:2015-06-11 12:54:06
4#
 楼主| 发表于 2007-9-29 16:19 | 只看该作者
谢谢2位捧场
快放假,不想干活了!!!

使用道具 举报

回复
论坛徽章:
15
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442014年新春福章
日期:2014-02-18 16:41:11ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28ITPUB元老
日期:2011-05-06 08:54:442011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010新春纪念徽章
日期:2010-03-01 11:04:59生肖徽章2007版:鼠
日期:2009-03-10 21:32:40生肖徽章2007版:猪
日期:2009-03-10 21:17:25CTO参与奖
日期:2009-01-15 11:42:46
5#
发表于 2007-9-30 08:29 | 只看该作者
不错,学习

使用道具 举报

回复
论坛徽章:
2
2009日食纪念
日期:2009-07-22 09:30:00
6#
发表于 2007-9-30 08:48 | 只看该作者
感谢楼主

使用道具 举报

回复
论坛徽章:
33
ITPUB元老
日期:2009-03-11 15:35:03咸鸭蛋
日期:2011-11-06 22:20:25紫蛋头
日期:2011-12-27 22:15:052012新春纪念徽章
日期:2012-01-04 11:49:542014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11红宝石
日期:2014-06-03 13:13:19
7#
发表于 2007-9-30 09:12 | 只看该作者
不错不错,赞一个

使用道具 举报

回复
论坛徽章:
27
数据库板块每日发贴之星
日期:2010-06-17 01:01:07迷宫蛋
日期:2011-07-07 15:25:46紫蛋头
日期:2011-08-10 10:31:56ITPUB十周年纪念徽章
日期:2011-09-27 16:33:28ITPUB十周年纪念徽章
日期:2011-11-01 16:25:222012新春纪念徽章
日期:2012-02-07 09:59:35ITPUB知识分享者
日期:2012-02-20 17:49:25铁扇公主
日期:2012-02-21 15:02:40ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:48
8#
发表于 2010-6-25 13:26 | 只看该作者
  学习了

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
9#
发表于 2010-6-25 13:36 | 只看该作者
再多写点,写的深入点,LZ分享精神很GOOD!

使用道具 举报

回复
论坛徽章:
0
10#
发表于 2012-4-24 14:40 | 只看该作者
谢谢了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表