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 항목들이 정말 많네요~