트레이스 파일은 데이터베이스 안에서 발생하는 다양한 정보를 디버깅하기 위한 소스 역햘을 하는 파일이다.
DBMS_MONITOR.SESSION_TRACE_ENABLE을 시행하여 성능 이벤트 관계 트레이스 파일을 생성할 수 있다.
디버깅 할 수 있는 방법은 다음과 같다.
2가지 종류의 트레이스 파일
다음과 같이 설정하여 트레이스 파일을 생성할 수 있다.
alter session set events '10046 trace name context forever, level 12'
오라클은 데이터베이스 서버에 두 위치 중 하나에 트레이스 파일을 생성한다.
트레이스 파일이 생성되는 위치를 알고 싶은 경우 show parameter dump_dest 명령어를 통해 확인이 가능하다.
SQL> show parameter dump_dest;
SQL> select name, value from v$parameter where name like '%dump_dest%';
위치 정보별 역할
[V$DIAG_INFO]
오라클 11g에 새롭게 추가된 뷰로 ADR과 같은 유용한 기능이 사용하는 트레이스 정보에 대해 손쉽게 확인할 수 있는 인터페이스 기능이다.
SQL> with home
as
(select value home
from v$diag_info
where name = 'ADR Home'
)
select name,
case when value <> home.home
then replace(value, home.home, '$home$')
else value
end value
from v$diag_info, home
/
오라클 11g 이전에 트레이스 파일을 알기 위해 필요한 view
손쉽게 트레이스 파일명을 생성하기 위한 쿼리
SQL> column trace new_val T
SQL> select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' ||
case when e.value is not null then '_' || e.value end trace
from v$process a, v$session b, v$parameter c, v$instance d, v$parameter e
where a.addr = b.paddr
and b.audsid = userenv ('sessionid')
and c.name = 'user_dump_dest'
and e.name = 'tracefile_identifier'
/
세션 파라미커인 tracefile_identifier를 이용하면 V$SESSION, V$PROCESS에 대한 권한이 없어도 꼬리표를 달 수 있다.
SQL> alter session set tracefile_identifier = 'Look_For_Me';
이렇게 생성된 파일들은 오라클 support 이용시 제출하여 서비스 요청시 사용할 때 사용한다.