Back Ground

DB - Lock 본문

ECO

DB - Lock

Back 2017. 1. 31. 15:08

클라이언트로 부터 SQL문을 실행할 때 


서버가 돌아가다가 멈춘 현상 



DB - Lock 걸린 상태 



[원인]

SQL Developer에서 Update문을 실행 후 commit 하지 않은 상태에서 

서버로 SQL문을 호출 했을 시 

java파일에서는 대기를 타고있다.


SQL Developer

 

 ORACLE.exe [                   ]

 

 

   SQL Developer의 SQL쿼리문(Not Commit 상태)

 
 

 ↖

 
 

 ↗ JAVA의 SQL 쿼리 

 ↖

 JAVA.exe

 

SQL Developer.exe 

 

 

 



이 순간 이미 SQL Developer의 쿼리가 전달 된 상태로 대기하고 있기 때문에

 JAVA의 쿼리는 실행하지 못하고 묶여있다. 


이것이 LOCK 



BTLMS의 정상적으로 실행 되는 로그 

Successfully 부분이 뜨게 설정해 놨다.


 BTLMS의 비정상적으로 실행 되는 로그

 

이런 상태로 실행되지 않고 대기하고 있는다.



 SQL Developer에서 commit을 해주어야만 풀린다..




BTLMS 락 상태 확인 쿼리들

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-- 락걸린 테이블 확인
 
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;
 
cs





락 상태확인하는 쿼리는 인터넷에 많이 나와 있다.

쿼리 참고해 볼 곳 : http://unions5.tistory.com/70

'ECO' 카테고리의 다른 글

BTLMS 대출대 정리  (0) 2017.01.23
Comments