日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle dba_waiters中的lockid是什么,查杀oracle lock session and table

發布時間:2024/8/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle dba_waiters中的lockid是什么,查杀oracle lock session and table 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查殺oracle 死鎖的一些帖子摘錄[@more@]

查找死鎖進程

column sid format 999;

column b format 9;

column object_name format a30;

select v$lock.sid,

decode(v$lock.type,

'MR', 'Media Recovery',

'RT','Redo Thread',

'UN','User Name',

'TX', 'Transaction',

'TM', 'DML',

'UL', 'PL/SQL User Lock',

'DX', 'Distributed Xaction',

'CF', 'Control File',

'IS', 'Instance State',

'FS', 'File Set',

'IR', 'Instance Recovery',

'ST', 'Disk Space Transaction',

'TS', 'Temp Segment',

'IV', 'Library Cache Invalida-tion',

'LS', 'Log Start or Switch',

'RW', 'Row Wait',

'SQ', 'Sequence Number',

'TE', 'Extend Table',

'TT', 'Temp Table',

'Unknown') LockType,

rtrim(object_type) || ' ' || rtrim(owner) || '.' || object_name object_name,

decode(lmode, 0, 'None',

1, 'Null',

2, 'Row-S',

3, 'Row-X',

4, 'Share',

5, 'S/Row-X',

6, 'Exclusive', 'Unknown') LockMode,

decode(request, 0, 'None',

1, 'Null',

2, 'Row-S',

3, 'Row-X',

4, 'Share',

5, 'S/Row-X',

6, 'Exclusive', 'Unknown') RequestMode,

ctime, block b

from v$lock, all_objects

where sid > 6

and v$lock.id1 = all_objects.object_id;

這個SQL可用來生成殺死死鎖進程的SQL

select 'alter system kill session '''||a.sid||','||b.serial#||''';'

from v$lock a,all_objects c,v$session b

where a.sid > 6 and a.id1 = c.object_id and a.sid = b.sid;

select 'alter system kill session '''||a.sid||','||b.serial#||''';'

from v$lock a,v$session b

where a.sid > 6 and a.sid = b.sid;

空閑之際,寫了個sql語句,解決當前工作中經常遇到的鎖定和被鎖定表得信息,歡迎大家使用,指正。

如何快捷的顯示當前鎖定和被鎖定表的用戶,sql等信息

如果是dba用戶那么可以使用

一、

阻塞和等待的用戶及sql語句

select 'blocker('||wb.holding_session||':'||sb.username||')-sql:'||qb.sql_text blockers,sb.machine,sb.terminal,

'waiter ('||wb.waiting_session||':'||sw.username||')-sql:'||qw.sql_text waiters ,sw.machine,sb.terminal

from dba_waiters wb,

v$session sb,

v$session sw,

v$sqlarea qb,

v$sqlarea qw

where wb.holding_session=sb.sid

and wb.waiting_session=sw.sid

and sb.prev_sql_addr=qb.address

and sw.sql_address=qw.address

and wb.mode_held<>'None'

二、如果不是dba那么就不能使用dba_waiters表了,可以使用v$lock來替換

select 'blocker('||lb.sid||':'||sb.username||')-sql:'|| qb.sql_text blockers,

'waiter ('||lw.sid||':'||sw.username||')-sql:'|| 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 sw.lockwait is not null

and sb.lockwait is null

and lb.block=1

如果向更詳細的顯示username的信息可以加入

select 'blocker('||lb.sid||':'||sb.username||')-sql:'|| qb.sql_text blockers,sb.machine,sb.terminal,sb.logon_time,

'waiter ('||lw.sid||':'||sw.username||')-sql:'|| qw.sql_text waiters ,sw.machine,sw.terminal,sw.logon_time

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 sw.lockwait is not null

and sb.lockwait is null

and lb.block=1

三、--根據以上顯示的信息可以知道當前產生鎖和等待的用戶信息

--那么就需要殺掉當前產生阻塞的用戶,在執行殺掉用戶進程前請咨詢dba和該業務的同事,是否產生其他的不當影響

select sid,serial# from v$session sid in (...) --查詢產生阻塞用戶的 sid,serial#,然后

alter system kill session(sid,serial#); --殺掉產生阻塞的用戶

總結

以上是生活随笔為你收集整理的oracle dba_waiters中的lockid是什么,查杀oracle lock session and table的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。