標籤:proc highlight 尋找 rac java sid bsp 一個 suse
/*oracle發生使用者鎖、資料庫鎖有時候比較吃資源的,如果大量的消耗資源,那麼其他的應用就沒有資源進行使用,就會異常關閉或無法開啟。當oracle發生鎖等待的時候,必須找到等待的鎖,必要的話,要尋找到對應的會話,將其殺掉。*/
【殺掉會話】
> alter system kill session ‘sid,serial’-- 這時候就要從v$session中找到sid和serial> select sid,serial from v$session
SELECT /*+ rule */ s.username,decode(l.type,‘TM‘,‘TABLE LOCK‘, ‘TX‘,‘ROW LOCK‘, NULL) LOCK_LEVEL,o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuserFROM v$session s,v$lock l,dba_objects oWHERE l.sid = s.sidAND l.id1 = o.object_id(+)AND s.username is NOT NULL---ERP----------------------------------ERPSELECT lower(SUBSTR(all_objects.owner||‘.‘||object_name,1,16)) , SUBSTR(os_user_name,1,10) , v$locked_object.process , SUBSTR(terminal,1,7) , v$session.sid,v$session.serial# , v$session.machine FROM v$locked_object,all_objects,v$session WHERE v$locked_object.object_id=all_objects.object_id AND v$locked_object.SESSION_ID=v$session.SID----ERP----------------------------------ERP
/*如果發生了鎖等待,就需要查出是誰造成了誰等待*/
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#FROM v$locked_object l,dba_objects o,v$session sWHERE l.object_id=o.object_idAND l.session_id=s.sidORDER BY o.object_id,xidusn DESC以上查詢結果是一個樹狀結構,如果有子節點,則表示有等待發生。如果想知道鎖用了哪個復原段,還可以關聯到V$rollname,其中xidusn就是復原段的USN
oracle鎖表與等待