oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

oracle查询锁表与解锁情况提供解决方案

来源:网络整理  作者:网络  发布时间:2020-12-13 13:28
如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待,本文将详细问您介绍此等问题的解决方法,有这...
SELECT /*+ rule */ s.username,
from v$sqltext
kill -9 OS系統的SPID

FROM v$session s,v$lock l,dba_objects o
AND l.id1 = o.object_id(+)
where object_id in (select object_id from v$locked_object)) obj,

复制代码 代码如下:

where LOCK_INFO.SESSION_ID = SESS_INFO.SID


复制代码 代码如下:


STATUS,
ALTER SYSTEM KILL SESSION '會話ID,會話SERIAL#';
MACHINE
SESS_INFO.ACTION as "動作", -- 動作
decode(l.type,'TM','TABLE LOCK',
LOCKWAIT,
order by LOCK_INFO.SESSION_ID;
obj.OBJECT_ID as OBJ_ID,
WHERE l.object_id=o.object_id
AND l.session_id=s.sid

where obj.object_id = lock_obj.object_id) LOCK_INFO,
LOCK_INFO.ORA_USERNAME as "ORACLE用戶", -- ORACLE系統用戶名稱
SESS_INFO.SERIAL# as "會話SERIAL#", -- 會話SERIAL#

3).
CLIENT_INFO,
SESS_INFO.MACHINE as "機器名稱", -- 機器名稱
(select spid from v$process where addr = a.paddr) spid,

复制代码 代码如下:

where address in (select sql_address from v$session where sid = &sid)
lock_obj.SESSION_ID as SESSION_ID,
SESS_INFO.LOCKWAIT as "等待鎖", -- 等待鎖
select LOCK_INFO.OWNER || '.' || LOCK_INFO.OBJ_NAME as "已鎖物件名稱", --物件名稱(已經被鎖住)
SESS_INFO.LOGON_TIME as "登錄時間", -- 登錄時間
LOCK_INFO.SUBOBJ_NAME as "已鎖子物件名稱", -- 子物件名稱(已經被鎖住)
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name, o.owner,o.object_name,o.object_type,s.sid,s.serial#

LOGON_TIME,
PROGRAM,

复制代码 代码如下:

obj.OBJECT_NAME as OBJ_NAME,
o.owner,o.object_name,o.object_type,
from (select *
以下的语句可以查询到谁锁了表:
lock_obj.OS_USER_NAME as OS_USERNAME,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser

复制代码 代码如下:

以下的语句可以查询到谁在等待:


SESS_INFO.STATUS as "會話狀態", -- 會話狀態
LOCK_INFO.OBJ_ID as "對象ID", -- 對象ID
SESS_INFO.PROGRAM as "程式名稱", -- 程式名稱
'TX','ROW LOCK',

obj.OBJECT_TYPE as OBJ_TYPE,
FROM v$locked_object l,dba_objects o,v$session s

4).

LOCK_INFO.SESSION_ID as "會話ID", -- 會話SESSION_ID

如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
from (select obj.OWNER as OWNER,
v$locked_object lock_obj

1).
LOCK_INFO.OBJ_TYPE as "對象類型", -- 對象類型
ORDER BY o.object_id,xidusn DESC

NULL) LOCK_LEVEL,
ACTION,
from all_objects
WHERE l.sid = s.sid
2).


alter system kill session 'sid,serial#'
select sql_text

lock_obj.PROCESS as PROCESS
SESS_INFO.SPID as "OS系統的SPID", -- OS系統的SPID
(SELECT INSTANCE_NAME FROM V$INSTANCE) "實例名SID", --實例名SID
(select SID,
from v$session a) SESS_INFO
SERIAL#,
order by piece;
LOCK_INFO.OS_USERNAME as "OS用戶", -- 作業系統用戶名稱


复制代码 代码如下:

LOCK_INFO.PROCESS as "進程編號", -- 進程編號
obj.SUBOBJECT_NAME as SUBOBJ_NAME,
lock_obj.ORACLE_USERNAME as ORA_USERNAME,
SESS_INFO.CLIENT_INFO as "客戶資訊" -- 客戶資訊


AND s.username is NOT NULL
解锁命令:

相关热词: oracle 解决

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/oracle/3303.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

oracle查询锁表与解锁情况提供解决方案

2020-12-13 编辑:网络

SELECT /*+ rule */ s.username,
from v$sqltext
kill -9 OS系統的SPID

FROM v$session s,v$lock l,dba_objects o
AND l.id1 = o.object_id(+)
where object_id in (select object_id from v$locked_object)) obj,

复制代码 代码如下:

where LOCK_INFO.SESSION_ID = SESS_INFO.SID


复制代码 代码如下:


STATUS,
ALTER SYSTEM KILL SESSION '會話ID,會話SERIAL#';
MACHINE
SESS_INFO.ACTION as "動作", -- 動作
decode(l.type,'TM','TABLE LOCK',
LOCKWAIT,
order by LOCK_INFO.SESSION_ID;
obj.OBJECT_ID as OBJ_ID,
WHERE l.object_id=o.object_id
AND l.session_id=s.sid

where obj.object_id = lock_obj.object_id) LOCK_INFO,
LOCK_INFO.ORA_USERNAME as "ORACLE用戶", -- ORACLE系統用戶名稱
SESS_INFO.SERIAL# as "會話SERIAL#", -- 會話SERIAL#

3).
CLIENT_INFO,
SESS_INFO.MACHINE as "機器名稱", -- 機器名稱
(select spid from v$process where addr = a.paddr) spid,

复制代码 代码如下:

where address in (select sql_address from v$session where sid = &sid)
lock_obj.SESSION_ID as SESSION_ID,
SESS_INFO.LOCKWAIT as "等待鎖", -- 等待鎖
select LOCK_INFO.OWNER || '.' || LOCK_INFO.OBJ_NAME as "已鎖物件名稱", --物件名稱(已經被鎖住)
SESS_INFO.LOGON_TIME as "登錄時間", -- 登錄時間
LOCK_INFO.SUBOBJ_NAME as "已鎖子物件名稱", -- 子物件名稱(已經被鎖住)
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name, o.owner,o.object_name,o.object_type,s.sid,s.serial#

LOGON_TIME,
PROGRAM,

复制代码 代码如下:

obj.OBJECT_NAME as OBJ_NAME,
o.owner,o.object_name,o.object_type,
from (select *
以下的语句可以查询到谁锁了表:
lock_obj.OS_USER_NAME as OS_USERNAME,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser

复制代码 代码如下:

以下的语句可以查询到谁在等待:


SESS_INFO.STATUS as "會話狀態", -- 會話狀態
LOCK_INFO.OBJ_ID as "對象ID", -- 對象ID
SESS_INFO.PROGRAM as "程式名稱", -- 程式名稱
'TX','ROW LOCK',

obj.OBJECT_TYPE as OBJ_TYPE,
FROM v$locked_object l,dba_objects o,v$session s

4).

LOCK_INFO.SESSION_ID as "會話ID", -- 會話SESSION_ID

如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
from (select obj.OWNER as OWNER,
v$locked_object lock_obj

1).
LOCK_INFO.OBJ_TYPE as "對象類型", -- 對象類型
ORDER BY o.object_id,xidusn DESC

NULL) LOCK_LEVEL,
ACTION,
from all_objects
WHERE l.sid = s.sid
2).


alter system kill session 'sid,serial#'
select sql_text

lock_obj.PROCESS as PROCESS
SESS_INFO.SPID as "OS系統的SPID", -- OS系統的SPID
(SELECT INSTANCE_NAME FROM V$INSTANCE) "實例名SID", --實例名SID
(select SID,
from v$session a) SESS_INFO
SERIAL#,
order by piece;
LOCK_INFO.OS_USERNAME as "OS用戶", -- 作業系統用戶名稱


复制代码 代码如下:

LOCK_INFO.PROCESS as "進程編號", -- 進程編號
obj.SUBOBJECT_NAME as SUBOBJ_NAME,
lock_obj.ORACLE_USERNAME as ORA_USERNAME,
SESS_INFO.CLIENT_INFO as "客戶資訊" -- 客戶資訊


AND s.username is NOT NULL
解锁命令:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/oracle/3303.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页