oracle log 보기 - alert, trace

by 조쉬 posted Sep 11, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

1. alert.log 경로 알아보기

 (bdump 폴더)

select value
from v$parameter
where name='background_dump_dest'

 

==============================================================================================================

 

10046 트레이스 파일의 레벨

Level 0  : 트레이스 안 함. SQL_TRACE=false 로 설정한 것과 동일한 효과

Level 1 : 일반적인 SQL 트레이스(SQL_TRACE=true) 정보 제공

Level 4 : SQL 트레이스 정보와  바인드 변수 값 제공

Level 8  : SQL 트레이스 정보와  대기이벤트 정보 제공

Level 12 : SQL 트레이스 정보, 대기 이벤트 정보, 그리고 바인트 변수 값 정보 제공

 

트레이스 파일의 생성 위치

사용자 세션 트레이스 : USER_DUMP_DEST(UDUMP) 로 지정한 디렉토리

백그라운드 프로세스  : BACKGROUND_DUMP_DEST(BDUMP) 로 지정한 디렉토리

 

크기는 트레이스 레벨, 수행시간, 세션의 활동, MAX_DUMP_FILE_SIZE 파라미터에 의해 다름

 

10046 Trace Event 사용법

10046 트레이스 이벤트는  자신의 세션 또는 다른 세션에 설정할 수 있다.

세션 수행 도중에 임의의 시점에, 트레이스의 활성화 또는 비 활성화가 가능하다.

비활성화 될 경우 ORACLE은 트레이스 파일의 기록을 중단한다.

 

1> Show parameter user_dump_dest 로 trace 파일 만들어 질 경로 를 확인 한다.

alter system set user_dump_dest=<value>로 trace 파일 경로를 설정할 수 있다.

2> alter session set timed_statistics=true; 로 설정

3> alter session set max_dump_file_size=unlimited로 설정

4> alter sessoin set events '10046 trace name context forever, level 8' 로 설정

-->트레이스 파일 생성 시작

5> alter session set events '10046 trace name context off'로 설정

-->트레이스 파일 생성 중단

 

DBMS_SUPPORT 패키지가 설치된 경우

1>exec sys.dbms_support.start_trace;

-->트레이스 파일에 대기 이벤트 정보를 기록한다.

2>exec sys.dbms_support.start_trace(waits=> true, binds=>true)

-->트레이스 파일에 대기 이벤트 및 바인드 변수 값들을 기록

3>exec sys.dbms_support.stop_trace;

-->트레이스를 해제한다.

 

참고>

DBMS_SUPPORT 패키지는 oralce_home/rdbms/admin 디렉토리에 있는 dbmssupl.sql 을 수행해야 한다.

 

다른 사용자의 세션 트레이스 하기

1>select  sid, serial#

from v$session

 

2>exec dbms_system.set_bool_param_in_session( - sid => <sid>, - serial#=><serial#>, - param => 'TIMED_STATISTICS', - bval => true);

 

3>exec dbms_system.set_int_param_in_session(- sid=><sid>, -serial#=><serial#>,- param => 'MAX_DUMP_FILE_SIZE', - intval => unlimited);

 

4> exec dbms_support.start_trace_in_session( - sid=><serial#> , - serial#=><serial#>, - waits => true, - binds => true);

 

Oradubug 기능

1> 세션의 O/S 프로세스 ID(SPID) 또는 오라클 프로세스 ID(PID)를 알아야 합니다.

select a.username, b.spid os_process_id, b.pid oracle_process_id

from v$session a, v$process b

where a.paddr = b.addr

and a.username = upper(':user_name');

 

2>alter system set timed_statistics = true;

3>oradebug setospid <os_process_id>;

4>oradubug unlimited;

5>oradebug event 10046 trace name context forever, level 8;

 

6>oradebug event 10046 trace name context off;


Articles

1 2 3 4 5 6 7