본문 바로가기

IT관련

ORA-600, ORA-7445 등 Internal 에러 분석할때 필요한 정보수집 TFA툴 소개

Oracle DB에서 ORA-00600, ORA-00700, ORA-07445 등과같은 Internal 에러가 발생하는 경우는 보통 버그성인 경우가 많고, 원인분석을 위해 오라클에 직접 물어봐야 합니다.

 

이때, 오라클에 증상만 설명하고 에러넘버만 불러준다고 오라클에서 원인분석을 할 수 있는 게 아닙니다.

보통 ORA-00600 같은 Internal 에러들은 버그성인 경우들이 많아서 Oracle 개발자도 첨보는 에러상황인 경우일 수 있기 때문에, 그 당시(에러가 날 당시)의 각종 로그정보들이 필요합니다.

 

그 당시의 정보를 이거달라 저거달라 해서 주고받다 보면 시간이 엄청 소요되겠죠?

그래서 한방에 필요할만한 정보들을 왕창 모아서 받기 위해 오라클에서 만든게 TFA (Trace File Analyzer) 라는 툴입니다.

요즘은 ORA-00600 같은 에러들은 SR 등록할때부터 애초에 TFA 로 수집된 로그정보도 함께 등록하도록 되어 있습니다.

 

Oracle Internal 에러의 경우, 거의 대부분 TFA 로그정보를 요구하고, TFA 로그정보를 줄 때까지 마냥 기다리기 때문에,

TFA 로그정보를 얼마나 빨리 오라클에 갖다 바치느냐가 중요합니다.

 

오라클 엔지니어를 부를수 있는 경우에는 엔지니어가 알아서 다 하지만, 그런 상황이 안될때는 결국 DBA 가 직접 해야합니다~

 

TFA툴을 사용하려면, 먼저 오라클 MOS(http://support.oracle.com/) 사이트에서 TFA 툴을 다운로드 받아서 설치해야 합니다.

MOS 에서 도큐먼트 ID "2550798.1" 로 검색하면, 아래와 같은 페이지가 나타납니다.

 

TFA툴이 다른 Check 하는 툴들과 통합되어서 지금은 AHF 라고 불리고 있습니다.

이 AHF 툴을 다운로드 받고 설치해야 TFA 툴을 사용할 수 있습니다.

다운로드는 위에 빨간색 버튼 "Download AHF 20.4 beta" 로 받지말고, 위 페이지 아래쪽에 있는 "GA Releases" 에서 받는게 좋습니다.

GA~ 라는 말이 "공식적으로다가 발표"되었다는 뜻이므로 더 안정적인 것을 의미합니다.

 

Linux, Solaris, AIX, Windows 각각 자신의 데이터베이스 시스템 OS 에 맞는 놈을 다운로드 받아야 합니다.

파일은 zip 파일로 되어 있고, 파일 사이즈가 400~500MB 정도 됩니다.

다운로드 받은 zip 파일을 압축을 풀지말고, 그대로 DB서버로 ftp 등으로 옮겨줍니다.

아무 디렉토리나 상관없습니다. 

 

      $ unzip *.zip
      $ ./ahf_setup

 

위와 같이 zip 파일을 unzip 으로 압축을 풀어주면, ahf_setup 이라는 파일이 나오는데, 이걸 실행시켜주면 됩니다.

이걸 실행하면, 어느 디렉토리에 설치할 거냐고 묻는데, 적당한 디렉토리를 지정해주기만 하면 설치는 금방 끝납니다.

이걸 가급적 root 유저에서 설치하라고 권고하고 있습니다. (하지만, oracle 유저에 설치도 가능)

root 유저에서 설치하게 되면, system message 나 RAC 의 경우 grid 유저 관련 정보까지 수집할 수 있는 장점이 있습니다.

 

-- 한글환경에서는 log 파일 만들면서 에러남. 아래처럼 영어환경으로 맞춰주고 돌려야 잘 돌아감.
    $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    $ export LANG=C


-- SRDC 정보 수집
    $ cd <설치디렉토리>/oracle.ahf/tfa/bin

    $ ./tfactl diagcollect -srdc ORA-00600
              -- ORA-00600 에러관련 몽창다~

    $ ./tfactl diagcollect -srdc ORA-07445
              -- ORA-07445 에러관련 몽창다~

    $ ./tfactl diagcollect -srdc ORA-00600 -for "2020-12-01"
              -- 특정날짜를 지정해서 .. (yyyy-mm-dd)

    $ ./tfactl diagcollect -srdc ORA-00600 -from "2020-12-01 09:30:00" -to "2020-12-05 18:00:00"
              -- 날짜시간 범위를 지정해서 .. (yyyy-mm-dd hh:mm:ss)

    $ ./tfactl diagcollect -for "2020-12-01"
              -- 특정 srdc 항목을 지정하지 않고 특정날짜의 발생한 것을 전부 수집

    $ ./tfactl diagcollect -last 6h
              -- 최근 6시간만 수집   (last 대신 since 를 써도 됨)
              -- h(시간), m(분), d(일) 단위를 사용할 수 있음.

    $ ./tfactl diagcollect -from "2020-12-01 12:50:00" -collectdir dir1,dir2,dir3
              -- 특정날짜 이후로 현재까지 정보를 수집하는데, 추가 디렉토리를 지정함.
              -- Oracle DB의 diagnostic_dest 디렉토리를 바꾼 경우, 새로운 위치를 못찾는 경우가 있는데,
              -- 이때, collectdir 에 추가해주면 됨. 여러개를 지정할 수 있음.

    $ ./tfactl help diagcollect
              -- 위 커맨드에 대한 도움말을 볼 수 있음.

    $ ./tfactl
              -- tfactl 만 치면, sqlplus 나 rman 처럼 전용 커맨드환경으로 진입함.

 

아래는 tfactl 커맨드 실행예 입니다.

실행이 성공적으로 끝나면, 마지막에 수집된 정보파일 크기를 보여주고, 해당 수집파일이 어느 디렉토리에 만들어졌는지가 나옵니다.

 

"Logs are being collected to: " 에 나오는 디렉토리로 가보면 xxxxxxxxxxx.zip 파일이 있는 것을 확인할 수 있습니다.

이 파일이 수집된 로그 파일입니다. 이 파일을 오라클에 넘겨주면 됩니다.

 

아래와 같이 -help 옵션을 주면 tfactl 커맨드로 수집할 수 있는 SRDC 항목들을 전부 확인할 수 있습니다.

 


$ ./tfactl diagcollect -srdc -help

Service Request Data Collection (SRDC).

Usage : /export/home/ora19/DBA/mon/TFA/oracle.ahf/tfa/bin/tfactl diagcollect -srdc  [-tag ] [-z ] [-last <m|h|d>| -from  -to  | -for ] -database 
    Listener_Services    SRDC - Data Collection for TNS-12516 / TNS-12518 / TNS-12519 / TNS-12520.
    Naming_Services      SRDC - Data Collection for ORA-12154 / ORA-12514 / ORA-12528.
    ORA-00020            SRDC for database ORA-00020 Maximum number of processes exceeded
    ORA-00060            SRDC for ORA-00060. Internal error code.
    ORA-00494            SRDC for ORA-00494.
    ORA-00600            SRDC for ORA-00600. Internal error code.
    ORA-00700            SRDC for ORA-00700. Soft internal error.
    ORA-01031            SRDC - How to Collect Standard Information for ORA - 1031 /ORA -1017 during SYSDBA connections
    ORA-01555            SRDC - ORA-1555: Checklist of Evidence to Supply (Doc ID 1682708.1)
    ORA-01578            SRDC - Required Diagnostic Data Collection for ORA-01578
    ORA-01628            SRDC for database ORA-01628 Snapshot too Old problems
    ORA-04021            SRDC for ORA-04021.
    ORA-04030            SRDC for ORA-04030. OS process private memory was exhausted.
    ORA-04031            SRDC for ORA-04031. More shared memory is needed in the shared/streams pool.
    ORA-07445            SRDC for ORA-07445. Exception encountered, core dump.
    ORA-08102            SRDC - Required Diagnostic Data Collection for ORA-08102.
    ORA-08103            SRDC - Required Diagnostic Data Collection for ORA-08103.
    ORA-22924            SRDC - ORA-22924 or ORA-1555 on LOB data: Checklist of Evidence to Supply (Doc ID 1682707.1)
    ORA-27300            SRDC for ORA-27300.  OS system dependent operation:open failed with status: (status).
    ORA-27301            SRDC for ORA-27301. OS failure message: (message).
    ORA-27302            SRDC for ORA-27302. failure occurred at: (module).
    ORA-30036            SRDC for database ORA-30036 Unable to extend Undo Tablespace problems
    ORA-4023             SRDC - ORA-4023 : Checklist of Evidence to Supply
    ORA-4063             SRDC - ORA-4063 : Checklist of Evidence to Supply
    TNS-12154            SRDC - Data Collection for TNS-12154.
    TNS-12514            SRDC - Data Collection for TNS-12514.
    TNS-12516            SRDC - Data Collection for TNS-12516.
    TNS-12518            SRDC - Data Collection for TNS-12518.
    TNS-12519            SRDC - Data Collection for TNS-12519.
    TNS-12520            SRDC - Data Collection for TNS-12520.
    TNS-12528            SRDC - Data Collection for TNS-12528.
    ahf                  SRDC - Data Collection for orachk or exachk issue, after running orachk -debug or exachk -debug.
    crs                  SRDC FOR CRS
    crsasm               SRDC FOR ASM CRS Related Errors
    dbacl                SRDC - How to Collect Standard Information for Access Control Lists (ACLs).
    dbaqgen              SRDC - How To Collect Information For Troubleshooting Problem In An Oracle Advanced Queuing Environment.
    dbaqmon              SRDC - How to Collect Information for Troubleshooting Queue Monitor (QMON) Issues.
    dbaqnotify           SRDC - How to Collect Information for Troubleshooting Notification in an Advanced Queuing Environment.
    dbaqperf             SRDC - How To Collect Information For Troubleshooting Performance In An Oracle Advanced Queuing Environment.
    dbaqpurge            SRDC - How to Collect Information for Troubleshooting Non-Purged Messages in an Advanced Queuing Environment
    dbasm                SRDC AUTOMATION: ENHANCE ASM/DBFS/DNFS/ACFS COLLECTIONS
    dbaudit              SRDC - How to Collect Standard Information for Database Auditing
    dbawrspace           SRDC for database AWR space problems
    dbdatapatch          SRDC - Data Collection for Datapatch issues.
    dbemon               SRDC - How to Collect Information for Troubleshooting Event Monitor (EMON) Issues
    dbenqdeq             SRDC - How to Collect Standard Information for Advanced Queueing Issues Using TFA Collector (Recommended) or Manual Steps
    dbexp                SRDC - How to Collect Information for Troubleshooting Export (EXP) Related Problems
    dbexpdp              SRDC - Diagnostic Collection for DataPump Export Generic Issues
    dbexpdpapi           SRDC - Diagnostic Collection for DataPump Export API Issues
    dbexpdpperf          SRDC - Diagnostic Collection for DataPump Export Performance Issues
    dbexpdptts           SRDC - Data to supply for Transportable Tablespace Datapump and original EXPORT, IMPORT
    dbfs                 SRDC for dbfs.
    dbggclassicmode      SRDC for DOC ID 1913426.1, 1913376.1 and 1912964.1
    dbggintegratedmode   SRDC for GoldenGate extract/replicat abends problems.
    dbhang               SRDC for database Hang problems
    dbimp                SRDC - Diagnostic Collection for Traditional Import Issues
    dbimpdp              SRDC - Diagnostic Collection for DataPump Import (IMPDP) Generic Issues
    dbimpdpperf          SRDC - Diagnostic Collection for DataPump Import (IMPDP) Performance Issues
    dbinstall            SRDC for Oracle RDBMS install problems.
    dbinvalidcomp        SRDC - Invalid Components and Objects : Checklist of Evidence to Supply
    dbinvalidobj         SRDC - Objects Getting Invalidated: Checklist of Evidence to Supply
    dbparameters         SRDC - Database Parameters: Checklist of Evidence to Supply.
    dbpartition          SRDC - Data to Supply for Create/Maintain Partitioned/Subpartitioned Table/Index Issues
    dbpartitionperf      SRDC - Data to Supply for Slow Create/Alter/Drop Commands Against Partitioned Table/Index
    dbpatchconflict      SRDC for Oracle RDBMS patch conflict problems.
    dbpatchinstall
    dbperf               SRDC for database performance problems
    dbpreupgrade         SRDC for database preupgrade problems.
    dbrac                SRDC FOR RAC Specific Issues
    dbracinst            SRDC AUTOMATION: ENHANCE ASM/DBFS/DNFS/ACFS COLLECTIONS
    dbracmin             Minimal SRDC FOR RAC Specific Issues
    dbrman               SRDC - Required diagnostic data collection for RMAN related errors.
    dbrmanperf           SRDC - Required diagnostic data collection for RMAN Performance(1671509.1).
    dbscn                SRDC for database SCN problems.
    dbshutdown           SRDC for Single Instance Database Shutdown problems
    dbspatialexportimport SRDC - Data Collection for Oracle Spatial Export/Import Issues.
    dbspatialinstall     SRDC - Data Collection for Oracle Spatial Installation Issues.
    dbsqlperf            SRDC - How to Collect Standard Information for a SQL Performance Problem Using TFA Collector.
    dbstandalonedbca     SRDC - DBCA Issues: Checklist of Evidence to Supply
    dbstartup            SRDC for Single Instance Database Startup problems
    dbtde                SRDC - How to Collect Standard Information for Transparent Data Encryption (TDE) (Doc ID 1905607.1)
    dbtextinstall        SRDC - Data Collection for Oracle Text Installation Issues - 12c.
    dbtextupgrade        SRDC - Data Collection for Oracle Text Upgrade Issues - 12c.
    dbundocorruption     SRDC - Required Diagnostic Data Collection for UNDO Corruption.
    dbunixresources      SRDC to capture diagnostic data for DB issues related to O/S resources
    dbupgrade            SRDC for database upgrade problems.
    dbvault              SRDC - How to Collect Standard Information for Database Vault
    dbxdb                SRDC for database XDB Installation and Invalid Object problems
    dnfs                 SRDC for DNFS.
    emagentgeneric       SRDC - Collect Trace/Log Information for Enterprise Manager Management Agent Generic Issues
    emagentperf          EM SRDC - Collect Diagnostic Data for EM Agent Performance Issues.
    emagentstartup       SRDC - Collecting Logs for Enterprise Manager 13c Agent Startup Errors.
    emagtpatchdeploy     SRDC - Collecting Log Files for EM 13c Agent or Agent Patch Deployment.
    emagtupgpatch        SRDC - Collecting Log Files for EM 13c Agent Upgrade or Local Installation or Patching.
    emcliadd             EM SRDC - Errors during the adding of a database/listener/ASM target via EMCLI.
    emclusdisc           EM SRDC - Cluster target, cluster (RAC) database or ASM target is not discovered.
    emdbaasdeploy        SRDC - Collect Trace/Log Information For Failures During Database As A Service(DBAAS) Deployment.
    emdbsys              EM SRDC - Database system target is not discovered/detected/removed/renamed correctly.
    emdebugoff           SRDC for unsetting EM Debug.
    emdebugon            SRDC for setting EM Debug.
    emfleetpatching      SRDC - Collecting Diagnostic Data for Enterprise Manager Fleet Maintenance Patching Issues.
    emgendisc            EM SRDC - General error is received when discovering or removing a database/listener/ASM target.
    emmetricalert        SRDC for EM Metric Events not Raised and General Metric Alert Related Issues.
    emomscrash           SRDC - Collect Diagnostic Data for all Enterprise Manager OMS Crash / Restart Performance Issues.
    emomsheap            SRDC - Collecting Diagnostic Data for Enterprise Manager OMS Heap Usage Alert Performance Issues.
    emomshungcpu         SRDC - Collecting Diagnostic Data for Enterprise Manager OMS hung or High CPU Usage Performance Issues.
    empatchplancrt       SRDC - Collecting Diagnostic Data for Enterprise Manager Patch Plan Creation Issues.
    emprocdisc           EM SRDC - Database/listener/ASM target is not discovered/detected by the discovery process.
    emtbsmetric          SRDC for EM Tablespace Space Used Metric Issues.
    esexalogic           SRDC - Exalogic Full Exalogs Data Collection Information.
    exservice            SRDC - Exadata: Storage Software Service Or Offload Server Service Failures.
    exsmartscan          SRDC - Exadata: Smart Scan Not Working Issues.
    ggintegratedmodenodb SRDC for GoldenGate extract/replicat abends problems.
    gridinfra            SRDC AUTOMATION: ENHANCE ASM/DBFS/DNFS/ACFS COLLECTIONS
    gridinfrainst        SRDC AUTOMATION: ENHANCE ASM/DBFS/DNFS/ACFS COLLECTIONS
    instterm             SRDC for instance terminated events, such as ORA-00469: ORA-00470: ORA-00480: ORA-00490: ORA-00491, ORA-00492, ORA-00493, ORA-00495, ORA-00496, ORA-00497, ORA-00498
    internalerror        SRDC for all other types of internal database errors.
    ora1000              SRDC - Open Cursors:Checklist of Evidence to Supply.
    ora18                SRDC - ORA-18 or Sessions Parameter: Checklist of Evidence to Supply.
    ora25319             SRDC - How to Collect Information for Troubleshooting an ORA-25319 Error in an Advanced Queuing Environment.
    zlgeneric            SRDC - Zero Data Loss Recovery Appliance (ZDLRA) Data Collection.

 

SRDC 항목들이 정말 많네요~