`

ORACLE锁的总结

 
阅读更多

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锁的一些理论总结

    Oracle五种表级排他锁的总结和归纳

    Oracle五种表级排他锁的总结和归纳行级排他锁 (Row Exclusive Table Lock,RX)

    oracle数据库锁使用

    Oracle的锁机制归纳总结,该文档详细介绍了各种档的使用方法和优缺点

    oracle中锁和表分区

    oracle中锁和表分区 详细的介绍,自己学的时候总结的。希望对你有点帮助哦

    Oracle sql文总结(case when,查看执行计画,文本操作,查看锁表及解锁,游标)

    Oracle sql文总结(case when,查看执行计画,文本操作,查看锁表及解锁,游标)

    oracle常用性能分析语句执行情况等语句总结

    数据库锁表关系、源头等一系列锁表问题查询及解决;查看oracle数据库最近执行了哪些sql语句;查询oracle效率底下的语句;oracle查询最占用资源的查询;oracle从磁盘、使用频率、缓冲等分析性能语句;

    Oracle11g从入门到精通2

    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 用户...

    Oracle数据库学习指南

    Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装)...49. 怎样快速查出Oracle 数据库中的锁等待 50. 怎样在SQLPlus中使用 '&' 来实现自定义参数变量? 51. 怎样在查询记录时给记录加锁 52. 自动备份Oracle数据库

    oracle课件.ppt

    改课件共263页,从安装到oracle详细的解读,罗列oracle大纲中涉及到...4.锁、并发、事务 5.表、索引、分区 6.数据类型、函数 7.SQL、视图 8.PL/SQL 9.存储过程、函数、触发器 10.备份恢复 11.ERWIN 12.linux基础、shell

    自己总结的oracle资料

    自己总结的oracle资料,包括:针对自带表的操作,数据库的安装,修改密码,解锁用户。

    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)终止...

    oracle实验报告

    (1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验...

    5-Oracle常用知识总结.doc

    oracle常用语句语法加实例文档,包括从工具介绍,用户解锁,建库建表,查询,函数,创建存储过程,函数,包,常用函数介绍,和oracle卸载详细方法,总文档77页

    oracle查看被锁的表和解锁

    在开发过程中遇到表被锁的情况,随后我去网上多方查看,发现解决办法都大同小异,解决问题后,总结了一下,供大家参考

    oracle如何解锁封锁的账号

    (1)我们在安装Oracle的时候最后一步有...总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。如果你想了解更多相关内容请查看下面相关链接

    oracle11g

    第十章:Oracle的事务和锁 第十一章:索引 第十二章:约束 第十三章:视图 第十四章:同义词 第十五章:序列 第三部分:SQL语言的扩展 第十六章:INSERT语句总结 第十七章:DML和DDL语句的其他用法 第十八...

    DB2和Oracle的并发控制(锁)比较

    火龙果软件工程技术中心 本文内容包括:引言DB2多粒度封锁机制介绍Oracle多粒度锁机制介绍DB2多粒度封锁机制的监控Oracle多粒度封锁机制的监控DB2多粒度封锁机制示例总结结束语在实际的生产运行环境中,笔者在国内...

    oracle调优,乱码解决等汇总

    都是工作中的总结,遇到的问题汇总 如:oracle乱码,oracle解锁 常用sql语法大全等等 希望对大家有用哈

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,...10.7 总结 525

    Oracle数据库、SQL

    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定义缺省值:...

Global site tag (gtag.js) - Google Analytics