ORACLE锁的总结

简介: 整理了一下ORACLE锁的东西------------------------------------------------------------------------------------------------------------v$lock视图的各个列及其说明ADDR    RAW(4)    在内存中锁定的对象的地址KADDR    RAW(4)    在内存中锁的地址SID    NUMBER    保持或申请锁的会话的标识号TYPE    VARCHAR2(2)    锁的类型。

整理了一下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用户总是频繁被锁,经常不能执行数据库事务操作,严重影响了系统运行效率。通过问题原因分析及排查,发现了原因,在此记录一下。
3949 0
Oracle数据库用户频繁被锁问题原因排查及解决
|
3月前
|
SQL Oracle 关系型数据库
Oracle-锁解读
Oracle-锁解读
55 0
|
11月前
|
运维 Oracle 关系型数据库
Oracle优化02-锁和阻塞
Oracle优化02-锁和阻塞
85 0
|
SQL 开发框架 Oracle
Oracle数据库面试题总结
1、SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert、delete、update DDL(数据定义语言)create、drop、alter DCL(数据控制语言)grant:把权限授予用户、revoke:把权限从用户收回 TPL(TCL,事务控制语言):commit、rollback
169 0
|
Oracle 关系型数据库 BI
Oracle-分析函数_总结
Oracle-分析函数_总结
|
SQL Oracle 算法
Oracle总结【SQL细节、多表查询、分组查询、分页】下
在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了…印象中就只有基本的SQL语句和相关一些概念….写下本博文的原因就是记载着Oracle一些以前没注意到的知识点…以后或许会有用… 实例与数据库概念
256 0
Oracle总结【SQL细节、多表查询、分组查询、分页】下
|
SQL Oracle 关系型数据库
Oracle总结【SQL细节、多表查询、分组查询、分页】上
在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了…印象中就只有基本的SQL语句和相关一些概念….写下本博文的原因就是记载着Oracle一些以前没注意到的知识点…以后或许会有用… 实例与数据库概念
120 0
Oracle总结【SQL细节、多表查询、分组查询、分页】上
|
SQL 存储 Oracle
Oracle总结【视图、索引、事务、用户权限、批量操作】三
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott (4)TCL(事务
136 0
Oracle总结【视图、索引、事务、用户权限、批量操作】三
|
SQL Oracle 关系型数据库
Oracle总结【视图、索引、事务、用户权限、批量操作】二
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott (4)TCL(事务
151 0
Oracle总结【视图、索引、事务、用户权限、批量操作】二
|
SQL 存储 Oracle
Oracle总结【视图、索引、事务、用户权限、批量操作】 一
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott (4)TCL(事务
134 0
Oracle总结【视图、索引、事务、用户权限、批量操作】 一

推荐镜像

更多