본문 바로가기

관심꺼리.log/정신노동.dat

오라클 DB 전체의 TX, TM LOCK 현상 확인 SCRIPT

다음 내용은 과거 Oracle Technical Bulletin (링크된 주소는 새롭게 바뀐 Technical Bulletin사이트)에 올라왔던 글을 스크랩 해두었던 내용이다. 지금은 새롭게 사이트가 개편되어서 인지 과거 데이터를 찾아 볼수가 없었다.
오라클 DB에 Lock현상을 체크하는 쿼리이다.
더불어 Jasu님의 '웹페이지에 코드를 이쁘게 보여주는 AScodeViewer'도 같이 테스트해 보았다. 나름대로 만들어본 오라클 SQL파일(*.sql)용 format xml파일을 적용해 보실려면 아래 첨부파일을 받아서 사용하시길 바랍니다.


[No. 11811] DB 전체의 TX, TM LOCK 현상 확인 SCRIPT

database 전체에 대해서 user table에 관계된 lock만을 확인하는 script를 기존 catblock.sql을 변형하여 작성하였다.
기존의 catblock.sql이 해당 lock을 waiting하는 session이 있을 때에만 결과가 나타나, 실제 waiting이 없는 경우 현재 lock 상태를 보지 못하였던 점과, 각 lock 상태에 대해서 바로 해당 object를 함께 display하도록 수정하였다.

[NOTE 1] sys user에서 수행하여야 하며 system 등 다른 dba 권한을 가진 user에서 수행하고자 한다면 다음과 같이 sys user에서 grant를 주어야 한다.

         SQL>grant select on v_$lock to system;

[NOTE 2] 전체 lock현황이 아니고 waiting이 발생하는 경우만을 보여주고자 한다면 첫번째 문장의 where절에 request !=0 를 첨가한다. 다음과 같이 된다.

         WHERE request !=0 AND type = 'TX' OR type = 'TM';

출처: http://211.106.111.2:8880/bulletin/list.jsp (과거 Oracle Technical Bulletin)