일반
2012.02.16 01:00

event trace - method

댓글 0조회 수 25127
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print
■ Event Categories 
  • dump diagnostic information on request
    - Immediate dumps
    - file headers ( control file, redo log file, data file )
    - System state dumps
    - Process state dumps
  • dump diagnostic information when an error occures
  • Change database server's behavior
    - enable hidden features
    - work around problems
    - specialized tuning
  • produce trace diagnostics as the database runs

 

■ Event Syntax
  • "ALTER SESSION SET EVENTS"  <event name><action>{:<event name><action>}*
    • event name  : immediate -  does not wait for anyone to post it.
                        : number - Oracle error number , internal event code . between 10000 and 10999.
    • action : crash  -  "" (nothing, use all defaults) | "off" (disable crash action for this event) | "after <N> times" (crash after <n> occurrences of this event)  
               : debugger - "" (nothing, use all defaults) | "off" (disable debugger invocation action for this event) | "after <n> times" (start invoking debugger on this 
                                   event after <n> occurrences of this event) | "forever" (once debugger is invoked, invoke each time event occurs) | "lifetime <n>" (once
                                    debugger is invoked, invoke each time for <n> successive ocurrences of this event, then disable debugger action for this event) 
               : trace -
■ Errorstack 

oradebug setospid XX
oradebug unlimit
oradebug dump errorstack 3
oradebug tracefile_name

alter system set max_dump_file_size=unlimited;
alter session set tracefile_identifier='error1';
alter session set events 'immeidate trace name errorstack level 3';

- The level for the errorstack dumps are
    0 Error stack only
    1 Error stack and function call stack (if implemented) 
    2 As 1 plus the ProcessState
    3 As 2 plus the context area (all cursors and current cursor highlighted)

* 수행시 마다 exit 나와서 다시 서버에 접속 하여 수행.

 

■ Hanganalyze Dump
  • hang 이나 slow performance 상황에 사용
  • 리소스 ( latch / enqueue 등 ) 을 점유하는 blocker 정보
  • blocker 정리를 통해 문제 해결 가능

oradebug setmypid
oradebug unlimit
oradebug hanganalyze 4
oradebug -g all hanganalyze 4

alter system set max_dump_file_size=unlimited;
alter session set tracefile_identifier='hang1';
alter session set events 'immeidate trace name hanganalyze level 4';

 

■ Systemstate Dump
  • database 전반의 hang 이나 slow performance 상황에 사용
  • database 문제 발생 후 재기동 할때 추후 분석을 위해 재기동 전에 확보
  • 3~5 분 간격 3회 수행 권장.
  • 매번 새로운 접속을 통해 수행

oradebug setmypid
oradebug unlimit
oradebug dump systemstate 10
oradebug -g all dump systemstate 266
oradebug dump systemstate 266
oradebug tracefile_name

alter system set max_dump_file_size=unlimited;
alter session set tracefile_identifier='sys1';
alter session set events 'immeidate trace name systemstate level 10';

 

■ oradebug 를 이용한 event
  • 10046, 10053 event 예제

oradebug setospid XX
oradebug unlimit
oradebug event 10046 trace name context forever, level 12;
oradebug event 10053 trace name context forever, level 1;
oradebug tracefile_name
oradebug event 10046 trace name context off;
oradebug event 10053 trace name context off;

 

alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
alter session set tracefile_identifier='10046event';
alter session set events '10046 trace name context forever , level 12';

alter session set events '10046 trace name context off';

 


 

■ 특정 세션의 process state dump
  • 문제가 있는 세션에 대한 process state dump 획득

oradebug setospid XX
oradebug unlimit
oradebug dump processstate 10

 

■ 특정 event 발생시 heap dump
  • ora- 4031 예제
  • init parameter 에 event name 하나에 trace name  을 여러개 사용할 경우 ; 를 붙임
  • init parameter 에 여러개 event 를 사용할 경우 : 를 붙임.

event = "4031 trace name heapdump level 1;name errorstack level 3"
alter session set event '4031 trace name heapdump level 1; name errorstack level 3';

event="10015 trace name context forever"
event="10046 trace name context forever, level 4"

evetn="10015 trace name context forever:
          10046 trace name context forever, level 4"

alter session set events '10015 trace name context forever:
        10046 trace name context forever, level 4';

 

■ alter session 으로 특정 Err 에 대한 event  
  • ora- 4031 예제

alter session set max_dump_file_size=unlimited;
alter session set tracefile_identifier='4031evet1';
alter session set events '04031 trace name errorstack level 3';
alter session set evetns '04031 trace name systemstate level 10';

 

■ sqlplus 접속이 불가능 할 경우 백그라운드 프로세스의 systemstate
  • OS debug 를 이용 특정 process 에게 특정 function 을 호출 하도록 처리
  • pmon 의 예제
  • unix - dbx , linux - gdb

$ps -ef |grep $ORACLE_SID | grep pmon
oracle 17165     1  0  Jul  6  ?        84:00 ora_pmon_DCOR1

$gdb $ORACLE_HOME/bin/oracle 17165
$gdb) call ksudss (10)

 

■ truss 남기기
  • db 를 내리기 전에 OS 에서 수행
  • Note 110888.1

( hp-ux )
$ tusc -afpo <output file > <pid> <executable>

(AIX 5L )
$ truss -aefo <output file > <executable>

( Linux )
$ strace -fo <output file > <executable>

( solaris )
$ truss -aefo <output file > <executable>

ex ) sqlplus 통해서 db 기동시 에러날 경우
truss -o truss.log -fae sqlplus '/as sysdba'


 

■ Network 에 대한 클라이언트 trace 남기기 
  • Client 에서 sqlnet.ora 파일에 설정

trace_level_client=16
trace_directory_client=c:\temp ( 윈도우 )
log_directory_client=/tmp ( unix )

 


번호 분류 제목 글쓴이 날짜
8 RAC Testing for Changing hostname via "hostname" cmd on Uinux  secret 김형조 2013.09.12
7 일반 ps 에서 보여주는 priority의 의미  secret 김형조 2013.09.12
6 일반 10060 trace name context forever   김형조 2012.02.21
5 일반 Reference Link - Active Data Guard   김형조 2012.02.16
4 일반 about SPA testing   김형조 2012.02.16
3 일반 DBA HIST desc all   김형조 2012.02.16
» 일반 event trace - method   관리자 2012.02.16
1 일반 Known schemas in Oracle   관리자 2012.02.15
Board Pagination ‹ Prev 1 Next ›
/ 1
Designed by hikaru100

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

O R A C L E L A B 로그인 :)