오라클 db서버가 문제생겨서 구글링하면서 모은 오라클 모니터링 쿼리입니다. 이걸로 추적?까진 모르겠지만.
유용하게 사용하세요
- --현재 잡고있는 프로세스 리스트를 확인한다.
- SELECT /*+ rule */
- s.STATUS "Status", s.serial# "Serial#", s.TYPE "Type",
- s.username "DB User", s.osuser "Client User", s.server "Server",
- s.machine "Machine", s.module "Module", s.terminal "Terminal",
- s.program "Program", p.program "O.S. Program",
- s.logon_time "Connect Time", lockwait "Lock Wait",
- si.physical_reads "Physical Reads", si.block_gets "Block Gets",
- si.consistent_gets "Consistent Gets",
- si.block_changes "Block Changes",
- si.consistent_changes "Consistent Changes", s.process "Process",
- p.spid, p.pid, s.serial#, si.sid, s.sql_address "Address",
- s.sql_hash_value "Sql Hash", s.action
- FROM v$session s, v$process p, sys.v_$sess_io si
- WHERE s.paddr = p.addr(+)
- AND si.sid(+) = s.sid
- AND s.username IS NOT NULL
- AND NVL (s.osuser, 'x') <> 'SYSTEM'
- AND s.TYPE <> 'BACKGROUND'
- ORDER BY 3;
- --높은 커서별 sid를 확인한다.
- SELECT sid, COUNT(sid) "cursor"
- FROM v$open_cursor
- --WHERE user_name = 'SCOTT'
- GROUP BY sid
- ORDER BY "cursor" DESC;
- --가장 많은 커서를 사용한 sql을 추적한다.
- SELECT sql_text, COUNT(sid) cnt
- FROM v$OPEN_CURSOR
- GROUP BY sql_text
- ORDER BY cnt DESC;
- --현재 inactive 된 세션과 active된 세션을 찾는다.
- SELECT STATUS,COUNT(*) FROM v$session
- GROUP BY STATUS;
- --??안된다??
- SELECT * FROM DBA_PROFILES;
- --WHERE PROFILE = [NEW_PROFILE_NAME];
- SELECT USERNAME,PROFILE FROM DBA_USERS;
- --제한시간 확인?? 더 찾아봐야 할듯
- SELECT * FROM USER_RESOURCE_LIMITS;
- -- 현재 접속된 세션수와 전용서버 방식으로 연결한 세션수, 백그라운드 세션 수, active 세션 수를 알 수 있는 쿼리
- SELECT COUNT(*) total_cnt, COUNT( DECODE( server, 'DEDICATED', 1, NULL)) dedicated_cnt,
- COUNT( Decode (TYPE, 'BACKGROUND', 1, NULL)) back_cnt,
- COUNT( DECODE( STATUS, 'ACTIVE', 1, NULL)) active_cnt
- FROM V$SESSION;
- -- 최대 동시 접속자 수
- /**
- processes : 프로세스 갯수 (백그라운드 +dedicate process)
- session : 동시접속 세션 수
- current_utilization : 현재 접속 카운트
- max_uitilization : 오라클을 시작한 이애로 최대 접속했을 때 피크 수
- initial_allocation : init.ora 파라메터에서 설정한 수치
- */
- SELECT * FROM V$Resource_limit;
- --cpu를 많이 사용하는 쿼리문과 프로세스아이디,시리얼번호,머신 알아내기
- SELECT c.sql_text
- ,b.SID
- , b.SERIAL#
- ,b.machine
- ,b.OSUSER
- ,b.logon_time --이 쿼리를 호출한 시간
- FROM v$process a, v$session b, v$sqltext c
- WHERE a.addr = b.paddr
- AND b.sql_hash_value = c.hash_value
- --and a.spid = '675958'
- ORDER BY c.PIECE ;
- --프로세스 아이디를 이용하여 쿼리문 알아내기
- SELECT c.sql_text
- ,b.SID
- , b.SERIAL#
- ,b.machine
- ,b.OSUSER
- ,b.logon_time --이 쿼리를 호출한 시간
- FROM v$process a, v$session b, v$sqltext c
- WHERE a.addr = b.paddr
- AND b.sql_hash_value = c.hash_value
- AND a.spid = '1708032' --1912870/
- ORDER BY c.PIECE;
- --락이 걸린 세션 자세히 알아보기
- SELECT a.sid, a.serial#,a.username,a.process,b.object_name,
- decode(c.lmode,2,'RS',3,'RX',4,'S',5,'SRX',8,'X','NO') "TABLE LOCK",
- decode (a.command,2,'INSERT',3,'SELECT',6,'UPDATE',7,'DELETE',12,'DROP TABLE',26,'LOCK TABLE','UNknown') "SQL",
- decode(a.lockwait, NULL,'NO wait','Wait') "STATUS"
- FROM v$session a,dba_objects b, v$lock c
- WHERE a.sid=c.sid AND b.object_id=c.id1
- AND c.TYPE='TM';
- --2번째
- SELECT a.sid, a.serial#, a.username, a.process, b.object_name
- FROM v$session a , dba_objects b, v$lock c
- WHERE a.sid=c.sid AND b.object_id = c.id1
- AND c.TYPE = 'TM';
- --active된녀석들 중 현재 프로세스별로 sql_text 확인하기
- SELECT
- a.sid, -- SID
- a.serial#, -- 시리얼번호
- a.STATUS, -- 상태정보
- a.process, -- 프로세스정보
- a.username, -- 유저
- a.osuser, -- 접속자의 OS 사용자 정보
- b.sql_text, -- sql
- c.program -- 접속 프로그램
- FROM
- v$session a,
- v$sqlarea b,
- v$process c
- WHERE
- a.sql_hash_value=b.hash_value
- AND a.sql_address=b.address
- AND a.paddr=c.addr
- AND a.STATUS='ACTIVE';
- --현재 db서버에 올려진 오라클 프로세스 별 확인
- SELECT
- s.STATUS "Status", s.serial# "Serial#", s.TYPE "Type",
- s.username "DB User", s.osuser "Client User", s.server "Server",
- s.machine "Machine", s.module "Module", s.client_info "Client Info",
- s.terminal "Terminal", s.program "Program", p.program "O.S. Program",
- s.logon_time "Connect Time", lockwait "Lock Wait",
- si.physical_reads "Physical Reads", si.block_gets "Block Gets",
- si.consistent_gets "Consistent Gets",
- si.block_changes "Block Changes",
- si.consistent_changes "Consistent Changes", s.process "Process",
- p.spid, p.pid, si.sid, s.audsid, s.sql_address "Address",
- s.sql_hash_value "Sql Hash", s.action
- FROM v$session s, v$process p, sys.v_$sess_io si
- WHERE s.paddr = p.addr(+)
- AND si.sid(+) = s.sid
- AND (s.username IS NOT NULL)
- AND (NVL (s.osuser, 'x') <> 'SYSTEM')
- AND (s.TYPE <> 'BACKGROUND')
- ORDER BY 1;
'IT' 카테고리의 다른 글
[tomcat] startup 지연현상시 설정 파일 수정방법 (0) | 2018.10.27 |
---|---|
[tomcat] 한개의 서버에 톰캣 여러개 셋팅방법 (0) | 2018.10.27 |
[oracle] 현재 실행중인 SQL의 사용률이 높은 커서 보기 (0) | 2018.10.27 |
mysql 한글깨짐 현상시 설정파일 셋팅방법 (0) | 2018.10.27 |
mysql backup script 작성하기 (0) | 2018.10.27 |