博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统视图介绍
阅读量:4350 次
发布时间:2019-06-07

本文共 1995 字,大约阅读时间需要 6 分钟。

3.1 系统视图介绍

为了监控Oracle系统中锁的状况,我们需要对几个系统视图有所了解:

3.1.1 v$lock视图

v$lock视图列出当前系统持有的或正在申请的所有锁的情况,其主要字段说明如下:

 

字段名称

类型

说明

SID

NUMBER

会话(SESSION)标识;

TYPE

VARCHAR(2)

区分该锁保护对象的类型;

ID1

NUMBER

锁标识1;

ID2

NUMBER

锁标识2;

LMODE

NUMBER

锁模式:0(None),1(null),2(row share), 3(row exclusive),4 (share),5(share row exclusive),6(exclusive)

REQUEST

NUMBER

申请的锁模式:具体值同上面的LMODE

CTIME

NUMBER

已持有或等待锁的时间;

BLOCK

NUMBER

是否阻塞其它锁申请;

 

表三:v$lock视图主要字段说明

 

其中在TYPE字段的取值中,本文只关心TM、TX两种DML锁类型;

关于ID1、ID2,TYPE取值不同其含义也有所不同:

 

TYPE

ID1

ID2

TM

被修改表的标识(object_id)

0

TX

以十进制数值表示该事务所占用的回滚段号与该事务在该回滚段的事务表(Transaction table)中所占用的槽号(slot number,可理解为记录号)。其组成形式为: 0xRRRRSSSS ( RRRR = RBS number, SSSS = slot )。

以十进制数值表示环绕(wrap)次数,即该槽(slot)被重用的次数;

 

表四:v$lock视图中ID1与ID2字段取值说明

3.1.2 v$locked_object视图

v$locked_object视图列出当前系统中哪些对象正被锁定,其主要字段说明如下:

 

字段名称

类型

说明

XIDUSN

NUMBER

回滚段号;

XIDSLOT

NUMBER

槽号;

XIDSQN

NUMBER

序列号;

OBJECT_ID

NUMBER

被锁对象标识;

SESSION_ID

NUMBER

持有锁的会话(SESSION)标识;

ORACLE_USERNAME

VARCHAR2(30)

持有该锁的用户的Oracle用户名;

OS_USER_NAME

VARCHAR2(15)

持有该锁的用户的操作系统用户名;

PROCESS

VARCHAR2(9)

操作系统的进程号;

LOCKED_MODE

NUMBER

锁模式,取值同表三中的LMODE;

 

表五:v$locked_object视图字段说明

3.2 监控脚本

根据上述系统视图,可以编制脚本来监控数据库中锁的状况。

3.2.1 showlock.sql

第一个脚本showlock.sql,该脚本通过连接v$locked_object与all_objects两视图,显示哪些对象被哪些会话锁住:

/* showlock.sql */

column o_name format a10

column lock_type format a20

column object_name format a15

select rpad(oracle_username,10) o_name,session_id sid,

decode(locked_mode,0,'None',1,'Null',2,'Row share',

3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'Exclusive') lock_type,

object_name ,xidusn,xidslot,xidsqn

from v$locked_object,all_objects

where v$locked_object.object_id=all_objects.object_id;

3.2.2 showalllock.sql

第二个脚本showalllock.sql,该脚本主要显示当前所有TM、TX锁的信息;

/* showalllock.sql */

select sid,type,id1,id2,

decode(lmode,0,'None',1,'Null',2,'Row share',

3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'Exclusive')

lock_type,request,ctime,block

from v$lock

where TYPE IN('TX','TM');

from:

转载于:https://www.cnblogs.com/wuxi/archive/2012/10/10/2718155.html

你可能感兴趣的文章
php获取来访者在搜索引擎搜索某个关键词,进入网站
查看>>
物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
查看>>
2018-2019-1 20165234 20165236 实验二 固件程序设计
查看>>
IDEA的GUI连接数据库写入SQL语句的问题总结
查看>>
Xpath在选择器中正确,在代码中返回的是空列表问题
查看>>
leecode第一百九十八题(打家劫舍)
查看>>
【BZOJ 1233】 [Usaco2009Open]干草堆tower (单调队列优化DP)
查看>>
07-3. 数素数 (20)
查看>>
写一个欢迎页node统计接口Py脚本(邮件,附件)-py
查看>>
计算两个日期之间的天数
查看>>
山东省第六届蓝桥杯 ///标题:三羊献瑞//c/c++组
查看>>
Unity火炬之光进度
查看>>
Android关于buildToolVersion与CompileSdkVersion的区别
查看>>
Linux企业级开发技术(7)——libevent企业级开发之锁和线程
查看>>
解决XCODE配置LLVM环境出现的问题
查看>>
Python爬虫基础
查看>>
Jmeter 监控远程服务器
查看>>
大数据 : Hadoop reduce阶段
查看>>
char*,const char*和string 三者转换
查看>>
[C/C++] VC2012编译的程序在WinXP下报告“指定的可执行文件不是有效的 Win32 应用程序”错误...
查看>>