소리소문 없이... 사랑도 명예도 이름도 남김 없이...
DexCore.net

DataBase/Oracle

Oracle Lock 확인

탑~! 2012. 8. 11. 18:29

--락걸린 테이블 확인
SELECT  do.object_name,  do.owner,  do.object_type,  do.owner,
  vo.xidusn,  vo.session_id,  vo.locked_mode
FROM 
  v$locked_object vo ,  dba_objects do
WHERE   vo.object_id = do.object_id ;
  
  
--해당테이블이 락에 걸렸는지.. 
SELECT   A.SID,  A.SERIAL#,  B.TYPE,  C.OBJECT_NAME
FROM   V$SESSION A,  V$LOCK B,  DBA_OBJECTS C
WHERE   A.SID=B.SID AND  B.ID1=C.OBJECT_ID 
   AND  B.TYPE='TM'  AND  C.OBJECT_NAME IN ('테이블명');
    
 
 /* 락발생 사용자와 sql, object 조회 */

SELECT   distinct x.session_id,  a.serial#,
  d.object_name,  a.machine,  a.terminal,
  a.program,  b.address,  b.piece,  b.sql_text
FROM  v$locked_object x,  v$session a,  v$sqltext b,  dba_objects d
WHERE  x.session_id = a.sid  and
  x.object_id = d.object_id  and
  a.sql_address = b.address  
order by b.address,b.piece;


/* 락 발생 사용자확인 */

SELECT   distinct x.session_id,  a.serial#,
  d.object_name,  a.machine,  a.terminal,  a.program,
  a.logon_time ,  'alter system kill session ''' || a.sid || ',  ' || a.serial# || ''';'
FROM   gv$locked_object x, gv$session a,  dba_objects d
WHERE   x.session_id = a.sid  and  x.object_id = d.object_id 
order by logon_time; 


/* 접속 사용자 제거 */

--alter system kill session 'session_id,serial#';
alter system kill session '26,6044';



/* 현재 접속자의 sql 분석 */

SELECT   distinct a.sid,  a.serial#,
  a.machine,  a.terminal,  a.program,
  b.address,  b.piece,  b.sql_text
FROM   v$session a,  v$sqltext b
WHERE   a.sql_address = b.address 
order by a.sid, a.serial#,b.address,b.piece;

728x90
반응형

'DataBase > Oracle' 카테고리의 다른 글

Oracle 랜덤 문자열 생성  (0) 2012.08.23
ORA-02020: too many database links in use 에러 조치 방법  (0) 2012.08.23
Oracle INSERT ALL  (0) 2012.08.09
Oracle Cursor 예제 (Loop Fetch)  (0) 2012.08.09
Oracle Cursor (for Loop)  (0) 2012.08.09