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;