오라클 모니터링 스크립트 공유 0 10 1,652

by 강정식 [2009.01.16 02:02:26]


10g Script.zip (614,100Bytes)

안녕하세요. 강정식입니다.
이제 코어스터디도 얼마 안있으면 시작을 하니 그 전에 SQL-PLUS에서 모니터링 하는 스크립트를
공유해 드립니다.

I. 스크립트 세팅 방법
1. ’10g Script.zip’ 파일 압축을 푼다.

2. 해당 경로의 아이콘을 복사하여 하단의 작업표시줄에 복사한다.
   

3. 아래 그럼처럼 인스턴스 개수에 맞게 여러개를 복사하여 사용하여도 좋다.
   

4. 이제 작업표시절에 있는 아이콘의 속성을 클릭하여 아래 그림의 내용을 참조하여 넣어준다.
   

    1) ’대상(T)’에 넣는 내용은 ’Sql-Plus’ 아이콘 클릭시 해당 인스턴스로 바로 접속하도록
       하기 위한 작업이다. 넣는 방법은 ’ID/Password@InstanceName’이다.(Ex : scott/tiger@db1)
    2) ’시작 위치(S)’에 넣는 내용은 해당 스크립트를 불러오기 위해 스크립트가 저장된 폴더를
       지정하기 위한 작업이다.

5. 접속 테스트
    1) 이제 위에서 설정한 아이콘을 클릭하여 접속해본다.
    2) 제대로 접속이 되었다면 아래처럼 접속구문이 떠야 한다.
   




II. 스크립트 사용 방법
1. 압축파일에 들어있는 스크립트는 약 200여가지가 있다.
   이에 대해 간략한 설명을 보려면 엑셀 첨부파일을 참고하기 바란다.

2. 스크립트의 대부분은 조회용이지만 일부 트랜잭션도 일으키는 스크립트가 있으니
   주의해서 사용
해야 한다. 다만 엑셀파일 안의 내용 중 노란색으로 칠해진것은
   조회용이고, 현재 필자가 가장 많이 사용하는 스크립트들이다.

3. 사용 방법
    1) 사용방법은 Sql-Plus에서 폴더 안의 스크립트 이름에 @를 붙힌 다음 엔터를 누르면 된다.
    2) 예제
        - @s : 현재 Active 세션들을 보여준다.


4. 유용한 스크립트 추천
    1)  ddltrg2  : 특정 Object의 변경이력을 살펴볼 수 있다.
                  장점은 특정 Index 또는 Table의 변경이 일어났을 때 어떤 유저가 하였는지 
                  조회할 수 있다.
    2)  deadtrx  : Dead Transaction이 어떤게 걸려있는지 살펴볼 수 있다.
    3)  liblock  : Library Cache Lock들에 대해 Tree 구조로 살펴볼 수 있다.
    4)  lock     : Lock이 걸린 현황을 Hold, Wait 구조로 살펴볼 수 있다.
                   장점은 RAC 환경에서 단일 노드로 접속하여 전체 노드를 확인할 수 있다.
    5)  locktab  : 특정 테이블을 입력하면 그 테이블의 Lock 현황을 조회할 수 있다.
    6)  obj      : 특정 Object의 Status를 확인할 수 있다.
    7)  parallel : Parallel 힌트를 사용하여 수행할 경우 Parallel의 전체 현황을 파악할 수 있다.
    8)  rollback : Undo를 사용하는 세션을 모니터링 할 수 있다.
    9)  s        : 현재 Active중인 세션을 볼 수 있다.
    10) ses      : 특정 세션의 디테일한 정보를 볼 수 있다.
    11) sql      : 특정 세션의 sid를 가지고 Runtime Explain과 Bind Variable을 볼 수 있다.
    12) stat     : 특정 테이블의 통계정보 및 인덱스를 한눈에 볼 수 있다.
    13) temp     : Temporary Tablespace 사용현황을 조회할 수 있다.
    14) traceon  : 현재 Running중인 세션의 sid값으로 트레이스를 활성화 할 수 있다.
    15) traceoff : 현재 Running중인 세션의 sid값으로 트레이스를 비활성화 할 수 있다.



휴.. 내용 정리하는게 생각보다 힘드네여.
여기까지 내용을 보시면 스크립트 사용하시는데 어려움은 없을거라고 생각됩니다.
또한 이 스크립트에 관심이 있으신 대용량 멤버들이나 자바 멤버분들도 사용 가능하시니
필요하시면 참고해 주시기 바랍니다. 다만 배포는 안됩니다. ^^;

내일 가혜 세미나에서 Lock에 대해서도 하니 미리 여기 스크립트 중 Lock 관련 스크립트를
공부하여 참가하셔도 좋을 것 같습니다.

그럼 보시고 궁금하신 점 있으시면 리플 달아주시기 바랍니다.

내일 뵙겠습니다...

by 오정희 [2009.01.16 08:04:01]
부지런쟁이~
땡큐~

by 장태길 [2009.01.16 08:58:53]
정식아 셋팅 해서 몇개 해봤는데
이분은 내부적으로 트리거 뷰 등을 만들어서 필요한 데이터를 가공 혹은 저장해서
보는 게 보이네... 스트립트 내부에 기술되어 있고,
좋은 참고인데.. 100%로가 아님 ㅇ.ㅇ
항상 여러 가지로 궁금 했었는데..


by 웅 [2009.01.16 09:29:52]
오~ 멋쟁이~

by 슈엔 [2009.01.16 09:37:01]
Oh ~ Good Job~

by drakula [2009.01.16 10:38:05]
오호~ 고마워^^

by 강정식 [2009.02.27 10:34:49]
추가로 알게된 사실 하나

저기 위에 제가 접속테스트라고 해서 적은 내용에 보시면 접속한 인스턴스 정보가 나온다고 했는데 이는 제가 공유해드린 스크립트중 'login.sql'이 활성화되서 나오는 것입니다.

즉, 'login.sql'안에 있는 내용 중

select host_name||':'||instance_name ||':'||user|| ' > '||chr(10)||' 1 ' as pr from v$instance ;

이 값을 가지고 뿌려주는거에여~

그리고 또 하나...

sql*plus 접속할 때 초기화해주는 파일이 'login.sql'이라고 합니다.
즉 이 파일을 생성한 뒤 파일안에 설정해주면 자신만의 설정으로 사용할 수 있다고 하네요.

sql*plus 요놈 갈수록 참으로 매력적으로 다가옵니다~

by 현 [2009.02.27 11:20:08]
질문하나 해도 되나?
현재 나도 저렇게 사용하고는 있는데,
작업을 돌리려면 항상 시간이 필요해서 시간을 세팅하는 스크립트를 만들어서 맨날 돌리는데,
저렇게 접속하면서 해당 스크립트도 자동으로 수행할 수 있게 하는 기능은 없나요?

by 웅 [2009.02.27 11:36:01]
login.sql에 set timgin on 한 줄 추가해주시면...
이게 아닌가요?? ^^a

by 현 [2009.02.27 12:57:23]
오호...
login.sql 여기다 세팅해주니 잘 되네...
아주 좋네그려....

by 타락천사 [2009.12.29 19:19:10]
다시 한번 봤는데 좋네..
ddltrg2 <== 이것 빼곤 다 정상 작동 !!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입