关于oracle 锁的实际 解决方法
来源:互联网 发布:php 字符串转化二进制 编辑:程序博客网 时间:2024/06/05 17:34
$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#';
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 Exp-00003问题的解决方法
- 关于oracle用户密码过期的解决方法
- 关于oracle数据库表被锁的解决方法
- 关于oracle中无法查询中文条件的解决方法
- 关于“EXP-00056: ORACLE error 12154 encountered”的解决方法
- 关于oracle报ORA-01033错误的解决方法
- 关于oracle服务器重启后不能工作的解决方法
- 关于oracle的ORA-00607和ORA-00600错误解决方法
- 关于“EXP-00056: ORACLE error 12154 encountered”的解决方法
- 关于项目连接oracle不能写IP的解决方法
- 关于P4安装ORACLE解决方法
- 关于P4安装ORACLE解决方法
- Oracle自增字段的实际应用
- Oracle case的实际用法总结
- Oracle case的实际用法总结
- Oracle实际应用时常用的基本功
- Struts2 中使用<jsp:forward> 出现404
- 一些中文字体的英文名称
- 关于 oacle 锁做的 小实验
- ORACLE 学习
- JPA2.0学习笔记---对象/关系映射增强详解
- 关于oracle 锁的实际 解决方法
- 对于大文件的编译方法
- 防火墙简述
- 电脑通过android手机上网
- Android HAL 是如何被调用的
- 防火墙和路由器的区别简述
- 安装应用程序服务器(远程管理)
- HDOJ 1024 Max Sum Plus Plus
- javascript cookies 存、取、删除实例