by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

14S_트레이스 파일




트레이스 파일





트레이스 파일이란

  • Oracle 의 내장된 디버그 기능 중의 하나
  • DBMS 내부 이벤트 정보, Application 의 SQL 및 대기 이벤트 및 성능관련 정보 파악 가능

트레이스 파일의 종류는

  • 사용자에 의해 생성 된 파일: User Trace File
  • 600, 7445 에러 등으로 인해 오라클이 자동 생성한 파일

트레이스 파일 생성

  • alter session 구문 사용
  • alter session 할 수 있는 System Privilege 필요
    SQL> alter session set sql_trace=true;
     ...
    SQL> alter session set sql_trace=false;
    
  • dbms_monitor 패키지 호출
  • dbms_monitor 패키지를 수행할 수 있는 Object Privilege 필요
    SQL> exec dbms_monitor.session_trace_enable;
     ...
    SQL> exec dbms_monitor.session_trace_disable;
    
  • oradebug 사용
  • sysdba 유저로 사용 가능하며, 타 세션에 대한 특정 이벤트 트레이스(ex 10046) 생성 가능
    SQL> oradebug setosipd <세션의 SPID>
    SQL> oradebug event 10046 trace name context forever, level 12
    ...
    SQL> oradebug Event 10046 trace name context off
    SQL> oradebug tracefile_name --tracefile name 생성
    

위치는


  • 10G 이하
      오라클 백그라운드 프로세스가 생성한 트레이스는 Background Dump Destination 에 생성
      기본적으로 $ORACLE_BASE/admin/SID/bdump
      사용자가 생성한 트레이스는 User Dump Destination 에 생성
      기본적으로 $ORACLE_BASE/admin/SID/udump
      background_dump_dest, user_dump_dest, core_dump_dest 파라메터 확인하여 실제 경로 조회 가능
  • 11g 이상
      Diagnostic 관련 경로가 하나로 통합, udump 와 bdump 통합
      $ORACLE_BASE/diag 안에 DB, Listener 로그 등 통합되어 있음
      diagnostic_dest 파라메터 변경 시 bdump, udump, cdump 경로 자동 변경 됨
      background_dump_dest, user_dump_dest, core_dump_dest 파라메터 확인하거나 v$diag_info 뷰 조회하여 실제 경로 조회 가능
SQL> show parameter diag

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /app/oracle/rman_restore
SQL> show parameter dump_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /app/oracle/rman_restore/diag/
                                                 rdbms/reco3/RECO3/trace
core_dump_dest                       string      /app/oracle/rman_restore/diag/
                                                 rdbms/reco3/RECO3/cdump
user_dump_dest                       string      /app/oracle/rman_restore/diag/
                                                 rdbms/reco3/RECO3/trace
SQL>
SQL> alter system set diagnostic_dest='/app/oracle' scope=both;

System altered.

SQL> show parameter dump_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /app/oracle/diag/rdbms/reco3/R
                                                 ECO3/trace
core_dump_dest                       string      /app/oracle/diag/rdbms/reco3/R
                                                 ECO3/cdump
user_dump_dest                       string      /app/oracle/diag/rdbms/reco3/R
                                                 ECO3/trace
SQL>

유저 트레이스 파일 이름

  • $SIDoraspid.trc 형식
  • 유저가 생성한 파일의 식별을 용이하게 하기 위해 식별자(Identifier) 붙일 수 있음
    SQL> alter session set tracefile_identifier = 'my_identifier' ;
    
    Session altered.
    
    SQL> alter system set sql_trace=true;
    
    System altered.
    
    SQL> select * from global_name;
    
    GLOBAL_NAME
    --------------
    RECO3
    
    SQL> alter system set sql_trace=false;
    
    System altered.
    
    SQL> exit
    
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Automatic Storage Management, OLAP, Data Mining
    and Real Application Testing options
    
    [RECO3]rac2:/app/oracle/diag/rdbms/reco3/RECO3/trace> ls -lrt
    total 40
    -rw-r----- 1 oracle oinstall   60 Oct 10 23:07 RECO3_mmon_504.trm
    -rw-r----- 1 oracle oinstall  993 Oct 10 23:07 RECO3_mmon_504.trc
    -rw-r----- 1 oracle oinstall  107 Oct 10 23:07 RECO3_dbrm_487.trm
    -rw-r----- 1 oracle oinstall 1792 Oct 10 23:07 RECO3_dbrm_487.trc
    -rw-r----- 1 oracle oinstall   68 Oct 10 23:08 RECO3_cjq0_571.trm
    -rw-r----- 1 oracle oinstall 1682 Oct 10 23:08 RECO3_cjq0_571.trc
    -rw-r----- 1 oracle oinstall  123 Oct 10 23:08 RECO3_ora_14067_my_identifier.trm
    -rw-r----- 1 oracle oinstall 6127 Oct 10 23:08 RECO3_ora_14067_my_identifier.trc
    -rw-r----- 1 oracle oinstall  198 Oct 10 23:08 alert_RECO3.log
    [RECO3]rac2:/app/oracle/diag/rdbms/reco3/RECO3/trace>
    

유저 트레이스 파일 내용

  • 아래와 같은 정보들이 헤더에 출력 됨
    1. Database 정보
    2. V$SESSION 의 Action 과 Module 정보
    3. Service name(Instance name) - 실제 db 접속을 위한 서비스 정보
    4. Session 정보
    5. 오류메시지
    6. 발생 시점에 실행 된 SQL 문
    7. 오류 코드와 관련 된 인수들(ORA-00600, ORA-7445 에러 발생시)
Trace file /app/oracle/diag/rdbms/reco3/RECO3/trace/RECO3_ora_14067_my_identifier.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME = /app/oracle/product/11.2.0
System name:    Linux
Node name:      rac2
Release:        2.6.32-100.28.5.el6.x86_64
Version:        #1 SMP Wed Feb 2 18:40:23 EST 2011
Machine:        x86_64
Instance name: RECO3
Redo thread mounted by this instance: 1
Oracle process number: 34
Unix process pid: 14067, image: oracle@rac2 (TNS V1-V3)


*** 2014-10-10 23:08:00.002
*** SESSION ID:(44.437) 2014-10-10 23:08:00.002
*** CLIENT ID:() 2014-10-10 23:08:00.002
*** SERVICE NAME:(SYS$USERS) 2014-10-10 23:08:00.002
*** MODULE NAME:(SQL*Plus) 2014-10-10 23:08:00.002
*** ACTION NAME:() 2014-10-10 23:08:00.002

CLOSE #140536387981400:c=0,e=7,dep=0,type=1,tim=1412950080002752
=====================
PARSING IN CURSOR #140536390231144 len=202 dep=1 uid=0 oct=3 lid=0 tim=1412950080003186 hv=3819099649 ad='6978a820' sqlid='3nkd3g3ju5ph1'
select obj#,type#,ctime,mtime,stime, status, dataobj#, flags, oid$, spare1, spare2 from obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname is null and subname is null
END OF STMT
EXEC #140536390231144:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2853959010,tim=1412950080003182
FETCH #140536390231144:c=0,e=20,p=0,cr=3,cu=0,mis=0,r=0,dep=1,og=4,plh=2853959010,tim=1412950080003253
CLOSE #140536390231144:c=0,e=1,dep=1,type=3,tim=1412950080003277
...

백그라운드 트레이스 파일의 활용

  • 내부 이벤트(오류) 로 생성 된 파일에 대해 사용자가 할 수 있는것은 많지 않음
  • Oracle Support 에 서비스 요청 생성 시에 첨부 자료로 활용 가능

ADR(Automatic Diagnostic Repository) 기능

  • 11g 이상부터 제공되는 기능
  • 진단(Diagnostic) 관련 이벤트 이력을 쉽게 조회하고 트레이스 파일 수집 가능한 콘솔
    [RECO3]rac2:/app/oracle> adrci
    
    ADRCI: Release 11.2.0.3.0 - Production on Fri Oct 10 23:14:11 2014
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    ADR base = "/app/oracle"
    adrci>
    adrci> show problem
    
    ADR Home = /app/oracle/diag/tnslsnr/clt585av24/listener2:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/tnslsnr/clt585av24/listenr2:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/tnslsnr/clt585av24/listener:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/tnslsnr/clt585av24/listener_bulk:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/rdbms/kammig/KAMMIG:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    2                    ORA 600 [2662]                                              12153                2014-05-29 13:42:53.671000 +09:00
    1                    ORA 603                                                     24001                2014-05-29 13:42:59.254000 +09:00
    
    ADR Home = /app/oracle/diag/rdbms/kshdb/KSHDB:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/rdbms/pilcntr/PILCNTR:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    1                    ORA 600 [qctcte1]                                           36306                2014-06-09 17:18:20.390000 +09:00
    
    ADR Home = /app/oracle/diag/rdbms/opusbulk/OPUSBULK:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    1                    ORA 600 [kzdGenDropStmt]                                    10322                2014-04-08 14:10:15.932000 +09:00
    2                    ORA 600 [ORA-00600: internal error code, arguments: [kzdGen 10276                2014-04-08 14:10:15.956000 +09:00
    3                    ORA 600 [qkaffsindex3]                                      10225                2014-09-22 22:01:27.640000 +09:00
    
    ADR Home = /app/oracle/diag/rdbms/nykcntr/NYKCNTR:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    1                    ORA 3137 [12333]                                            144265               2014-04-07 22:40:20.111000 +09:00
    3                    ORA 600 [prshntcb-1]                                        156066               2014-04-14 16:10:05.728000 +09:00
    2                    ORA 600 [qctcte1]                                           168681               2014-06-18 14:42:59.005000 +09:00
    
    ADR Home = /app/oracle/diag/rdbms/cltpms/CLTPMS:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/rdbms/dpwdb/DPWDB:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/rdbms/db113/DB113:
    *************************************************************************
    0 rows fetched
    
    ADR Home = /app/oracle/diag/rdbms/hjldb/HJLDB:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    1                    ORA 7445 [knst_statscbk]                                    4075                 2014-10-07 22:00:46.371000 +09:00
    
    ADR Home = /app/oracle/diag/clients/user_oracle/host_4110900066_80:
    *************************************************************************
    PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
    -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
    2                    oci 24550 [3]                                               1                    2014-03-19 10:01:32.174000 +09:00
    1                    oci 24550 [11]                                              9                    2014-03-20 21:41:20.883000 +09:00
    3                    oci 10847                                                   17                   2014-05-29 13:42:59.731000 +09:00
    
    ADR Home = /app/oracle/diag/clients/user_oracle/host_4110900066_82:
    *************************************************************************
    0 rows fetched
    
    adrci>
    
    





문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.