Skip to main content

Oracle Trace File Analyzer (TFA)


Hi Guys,

Oracle Trace File Analyzer (TFA) is a powerful diagnostic tool which provides a number of diagnostic tools in a single bundle and making it easy to gather diagnostic information about the Oracle database and Clusterware, which in turn helps with problem resolution when dealing with Oracle Support.

  • Download TFA
  • Install TFA
  • Run a TFA collection.
  • Upload TFA collection to My Oracle Support (MOS)

Download TFA.

Download the latest version from here

Install TFA

This is recommended that TFA should be installed from "root" OS user which provides the most functionalities and allows it to run in a proactive manner as a daemon, or locally as the Oracle software owner.

Here I did this from root to do proactive tool.

Unzip the software, create a destination location and install the software using the "-local" flag (if not doing this for RAC).

unzip command path is mandatory for installing the TFACTL Locating the installation media.

cd /u01/software
unzip TFA-<OS version>.zip

mkdir -p $ORACLE_HOME/tfa
./installTFA-AIX -local -tfabase $ORACLE_HOME/tfa

<host>:root:/tmp>./installTFA-AIX-PPC64 -local -tfabase /oracle/<SID>/112_64/
TFA Installation Log will be written to File : /tmp/tfa_install_8978586_2019_01_16-10_56_56.log

Starting TFA installation

TFA Version: 184200 Build Date: 201901021207

Running Auto Setup for TFA as user root...

Installing TFA now...

Discovering Nodes and Oracle resources

Starting Discovery...

No Grid Infrastructure Discovered on this system . . . . .

<server name>
Searching for running databases...
1. <SID>

Searching out ORACLE_HOME for selected databases...

Getting Oracle Inventory...

ORACLE INVENTORY: /oracle/<SID>/oraInventory

Discovery Complete...

TFA Will be Installed on <server name>...

TFA will scan the following Directories
++++++++++++++++++++++++++++++++++++++++++++

.----------------------------------------------------------------------.
|                             <server name>                            |
+-----------------------------------------------------------+----------+
| Trace Directory                                           | Resource |
+-----------------------------------------------------------+----------+
| /oracle/DCS/11203/cfgtoollogs                             | CFGTOOLS |
| /oracle/DCS/11203/install                                 | INSTALL  |
| /oracle/DCS/oraInventory/ContentsXML                      | INSTALL  |
| /oracle/DCS/oraInventory/logs                             | INSTALL  |
| /oracle/DCS/saptrace/diag/rdbms/dcs/DCS/trace             | RDBMS    |
| /oracle/DCS/saptrace/diag/tnslsnr                         | TNS      |
| /oracle/cfgtoollogs                                       | CFGTOOLS |
| /oracle/diag/clients/user_dcsadm/host_2680787435_80/cdump | DBCLIENT |
| /oracle/diag/clients/user_dcsadm/host_2680787435_80/trace | DBCLIENT |
| /oracle/diag/clients/user_nrnadm/host_2680787435_80/cdump | DBCLIENT |
| /oracle/diag/clients/user_nrnadm/host_2680787435_80/trace | DBCLIENT |
| /oracle/diag/clients/user_nrnadm/host_2680787435_82/cdump | DBCLIENT |
| /oracle/diag/clients/user_nrnadm/host_2680787435_82/trace | DBCLIENT |
| /oracle/diag/clients/user_oranrn/host_2680787435_82/cdump | DBCLIENT |
| /oracle/diag/clients/user_oranrn/host_2680787435_82/trace | DBCLIENT |
| /oracle/diag/clients/user_sd2adm/host_2680787435_80/cdump | DBCLIENT |
| /oracle/diag/clients/user_sd2adm/host_2680787435_80/trace | DBCLIENT |
| /oracle/diag/tnslsnr/nguksvartw180/listener/cdump         | TNS      |
| /oracle/diag/tnslsnr/nguksvartw180/listener/trace         | TNS      |
| /oracle/diag/tnslsnr/nguksvartw180/listener_sd2/cdump     | TNS      |
| /oracle/diag/tnslsnr/nguksvartw180/listener_sd2/trace     | TNS      |
'-----------------------------------------------------------+----------'

Installing TFA on <server name>:
HOST: <server name>     TFA_HOME: /oracle/DCS/11203/tfa/nguksvartw180/tfa_home
.--------------------------------------------------------------------------------------.
| Host          | Status of TFA | PID      | Port  | Version    | Build ID             |
+---------------+---------------+----------+-------+------------+----------------------+
| nguksvartw180 | RUNNING       | 48169146 | 49367 | 18.4.2.0.0 | 18420020190102120706 |
'---------------+---------------+----------+-------+------------+----------------------'

Running Inventory in All Nodes...

Enabling Access for Non-root Users on <server name>...

Adding default users to TFA Access list...

Summary of TFA Installation:
.--------------------------------------------------------------------.
|                            <server name>                           |
+---------------------+----------------------------------------------+
| Parameter           | Value                                        |
+---------------------+----------------------------------------------+
| Install location    | /oracle/DCS/11203/tfa/<server name>/tfa_home |
| Repository location | /oracle/DCS/11203/tfa/repository             |
| Repository usage    | 0 MB out of 3188 MB                          |
'---------------------+----------------------------------------------'

TFA is successfully installed...

Usage : /oracle/<SID>/11203/tfa/bin/tfactl <command> [options]
    commands:diagcollect|collection|analyze|ips|run|start|stop|enable|disable|status|print|access|purge|directory|host|receiver|set|toolstatus|uninstall|diagnosetfa|syncnodes|setupmos|upload|availability|rest|events|search|changes|isa
For detailed help on each command use:
  /oracle/DCS/11203/tfa/bin/tfactl <command> -help

Run a TFA collection.

Below are few examples how you can extract diagnostic information.

Gather diagnostic information about TFA itself.

<server name>:ora<SID> 29> cd $ORACLE_HOME/tfa/bin/
<server name>:ora<SID> 30> ./tfactl diagnosetfa -local

Running TFA Diagnostics...

Node List to collect TFA Diagnostics :
     1  <server name>

Running TFA Diagnostics on <server name>...

Mon May  6 17:54:24 2019 : Collecting TFA Process details...
Mon May  6 17:54:24 2019 : Collecting Details of TFA Files...
Mon May  6 17:54:25 2019 : Collecting TFA Install Logs...
Mon May  6 17:54:25 2019 : Collecting Disk Space...
Mon May  6 17:54:25 2019 : Collecting Top Output...
Mon May  6 17:54:26 2019 : Collecting TFA Status...
Mon May  6 17:55:52 2019 : Collecting JStack Output...
Mon May  6 17:55:52 2019 : Collecting TFA Logs...
Mon May  6 17:55:53 2019 : Collecting TFA BDB Stats...
Mon May  6 17:55:57 2019 : Zipping Collections...

Sleeping for 10 Seconds...

TFA Diagnostics are being collected to /tmp/tfadiagnostics_20190506_175423 :
/tmp/tfadiagnostics_20190506_175423/<server name>.zip

Gather information about errors. You are prompted to select a specific incident.

 <server name>:ora<SID> 31> ./tfactl diagcollect -srdc ORA-00600
Enter the time of the ORA-00600 [YYYY-MM-DD HH24:MI:SS,<RETURN>=ALL] :
Enter the Database Name [<RETURN>=ALL] :

Could not find any events
<server name>:ora<SID> 32> ./tfactl diagcollect -srdc ORA-07445
Enter the time of the ORA-07445 [YYYY-MM-DD HH24:MI:SS,<RETURN>=ALL] :
Enter the Database Name [<RETURN>=ALL] :

Could not find any events

Collect data for all components for the last 12 hours.

<server name>:ora<SID> 33> ./tfactl diagcollect

By default TFA will collect diagnostics for the last 12 hours. This can result in large collections
For more targeted collections enter the time of the incident, otherwise hit <RETURN> to collect for the last 12 hours
[YYYY-MM-DD HH24:MI:SS,<RETURN>=Collect for last 12 hours] :

Collecting data for the last 12 hours for all components...
Collecting data for all nodes

Collection Id : 20190506170023<server name>

Detailed Logging at : /oracle/<SID>/11204/tfa/repository/collection_Mon_May_06_18_00_24_BST_2019_node_all/diagcollect_20190506170023_<server name>.log
2019/05/06 17:00:35 GMT : NOTE : Any file or directory name containing the string .com will be renamed to replace .com with dotcom
2019/05/06 17:00:35 GMT : Collection Name : tfa_Mon_May_06_18_00_24_BST_2019.zip
2019/05/06 17:00:35 GMT : Collecting diagnostics from hosts : [<server name>]
2019/05/06 17:00:35 GMT : Scanning of files for Collection in progress...
2019/05/06 17:00:35 GMT : Collecting additional diagnostic information...
2019/05/06 17:00:40 GMT : Getting list of files satisfying time range [05/06/2019 05:00:35 GMT, 05/06/2019 17:00:40 GMT]
2019/05/06 17:00:51 GMT : Collecting ADR incident files...
2019/05/06 17:00:53 GMT : Completed collection of additional diagnostic information...
2019/05/06 17:00:57 GMT : Completed Local Collection
.------------------------------------------.
|            Collection Summary            |
+---------------+-----------+-------+------+
| Host          | Status    | Size  | Time |
+---------------+-----------+-------+------+
| <server name> | Completed | 1.2MB |  22s |
'---------------+-----------+-------+------'

Logs are being collected to: /oracle/<SID>/11204/tfa/repository/collection_Mon_May_06_18_00_24_BST_2019_node_all
/oracle/<SID>/11204/tfa/repository/collection_Mon_May_06_18_00_24_BST_2019_node_all/<server name>.tfa_Mon_May_06_18_00_24_BST_2019.zip



Still manual upload option to the MOS SR is there, however, you can do it directly from the command line.

./tfactl setupmos
Enter User Id: abc@test.com
Enter Password:         
Wallet does not exist ... creating
Wallet created successfully
USER details added/updated in the wallet
PASSWORD details added/updated in the wallet
SUCCESS - CERTIMPORT - Successfully imported certificate

TFA collected data can be uploaded directly to the MOS by switch "-sr" on CLI.

./tfactl diagcollect -srdc ORA-00600 -sr 4-43434434344
./tfactl diagcollect -srdc ORA-00600 -sr 4-43434434344 -user abc@test.com
./tfactl upload -sr 4-43434434344 -wallet file1.zip file2.zip file3.zip
./tfactl upload -sr 4-43434434344 -user abc@test.com file1.zip file2.zip file3.zip

Uninstall logs

Though you will not need to uninstall, however, showing just for knowledge in case you want to do so.

<server name>:root:/tmp>/opt/oracle.tfa/tfa/bin/tfactl uninstall
TFA will be uninstalled on nguksvartw180 :

Removing TFA from nguksvartw180...

Stopping TFA Support Tools...

Stopping TFA in nguksvartw180...

Shutting down TFA
LCM is not started yet
Nothing to do !
TFA-00104 Cannot establish connection with TFA Server. Please check TFA Certificates
. . . . .
. . .
Successfully shutdown TFA..

TFA-00002 Oracle Trace File Analyzer (TFA) is not running
Deleting TFA support files on nguksvartw180:
Removing /etc/rc.d/rc2.d/K17init.tfa
Removing /etc/init.tfa...
Removing /opt/oracle.tfa/tfa/bin...
Removing /opt/oracle.tfa/tfa/nguksvartw180...



More information about TFA at "TFA Collector - TFA with Database Support Tools Bundle (Doc ID 1513912.1)"

Please write your comments if this helped you and let me know if I can help you further.

Comments

  1. Oracle Trace File Analyzer (TFA) very well explained, Thank you

    ReplyDelete

  2. Iam so thrilled because of finding your alluring website here.Actually i was searching for Oracle DBA.Your blog is so astounding and informative too..Iam very happy to find such a creative blog. Iam also find another one by mistake while am searching the same topicOracle APEX.Thank you soo much..

    ReplyDelete
  3. graminneu-taBridgeport Keith Carouthers get
    There
    essoifracal

    ReplyDelete

Post a Comment

Popular posts from this blog

Oracle OS Watcher - Start and generate html report

Hi Guys, OS Watcher is an excellent utility for system performance investigation. OSWatcher invokes these distinct operating system utilities, each as a distinct background process, as data collectors. These utilities will be supported, or their equivalents, as available for each supported target platform. ps top ifconfig mpstat iostat netstat traceroute vmstat meminfo (Linux Only) slabinfo (Linux Only) OSWatcher is java program and requires as a minimum java version 1.4.2 or higher. This can run on on any Unix/Windows. An X Windows environment is required because oswbba uses Oracle Chart builder which requires it. Make sure java path is set $which java $<java path>/java Following will take system snapshot in every 30 seconds and will log last 24 hours data to OS Watcher archive log files. $cd <OS watcher dir> $nohup ./startOSWbb.sh 30 24 gzip <OS Watcher file location> & Without compress $nohup ./s...

Alter System Checkpoint

Hello Techies, This happens most of the time that you need to add/drop redo log groups in Oracle databases due to any administrative reasons, however, if candidate redo group is in ACTIVE status, then you can't drop it and DBA need to wait until this comes in INACTIVE status to become this group available from drop. Here is the trick. Current status of redo log groups in my test database and you can see highlighted groups in ACTIVE status. In this situation, if DBA need to modify/drop these groups he/she need to wait until this comes in INACTIVE status. SQL> select * from v$log;     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME      NEXT_CHANGE# NEXT_TIME ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------...

ORA-15180: could not open dynamic library odm library, error [open]

Hello Friends, Faced " ORA-15180: could not open dynamic library odm library, error [open] " which is linked with libodm11.so and libodmd11.so. Target system was refreshed from a source system which was enabled to use Oracle Disk Manager (ODM), hence got source system configuration on target and while performing database PITR, this did not came easily at nomount stage. Have a look below. Following was the way, how I sorted it out. $> sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 6 16:42:50 2017 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to an idle instance. SQL> startup nomount ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance ORA-15180: could not open dynamic library odm library, error [open] SQL> exit Disconnected Checked $ORACLE_HOME/lib/libod* condition. In your case, some of date related files may/may not be there. $> ls -lart $ORACLE_HOME/lib/l...