TFA全称:Trace File Analyzer,是Oracle官方提供的一款日志分析与收集工具,常用于RAC集群环境中快速定位故障并统一汇总日志。
1. DBA发出 diagcollect 命令启动日志收集;
2. 本地TFA向其他节点发送收集请求;
3. 各节点开始并行收集各自的诊断信息;
4. 所有日志文件归档至发起命令的“master”节点;
5. DBA提取日志压缩包,用于人工分析或提交SR。
必须配置root用户的 ORACLE_HOME
环境变量,否则会报错:
ERROR: ORACLE_HOME is not set
建议修改 .bash_profile
文件如下:
# ~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_HOME=/oracle/app/product/193000/db_1
进入TFA安装目录并执行安装脚本:
cd /oracle/app/product/193000/db_1/suptools/tfa/release/tfa_home/install/
./roottfa.sh
安装提示:
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : yes
Installing Oracle Trace File Analyzer (TFA).
...
Finished installing Oracle Trace File Analyzer (TFA)
安装完成后会输出日志路径,如
/oracle/app/product/193000/db_1/install/root_rac19cn1_xxx.log
cd $TFA_HOME/bin
./tfactl
tfactl> start
输出示例:
Starting TFA..
...
TFA Started and listening for commands
tfactl> stop
tfactl> diagcollect -database ora19c
系统提示是否输入具体时间范围,按回车默认收集12小时内的日志。
tfactl> diagcollect -for Nov/2/2020
可用于指定日期的大范围日志收集。
tfactl> diagcollect -database ora19c -for Nov/2/2020
tfactl> diagcollect -crs -for Nov/2/2020
tfactl> diagcollect -database ora19c -from "2020-11-02 18:00:00" -to "2020-11-03 08:00:00"
收集结果会保存在类似以下路径:
/oracle/gridbase/tfa/repository/collection_<时间>_node_all/
压缩包示例:
rac19cn1.tfa_Tue_Nov_03_09_21_07_CST_2020.zip
rac19cn2.tfa_Tue_Nov_03_09_21_07_CST_2020.zip
详细操作过程日志可查看:
diagcollect__rac19cn1.log
问题 | 解决方案 |
---|---|
ERROR: ORACLE_HOME is not set |
确保root用户配置了正确的环境变量 |
TFA版本过旧提示 | 下载并更新到最新版本(参考Oracle MOS) |
收集内容过大 | 通过 -from/-to 或 -for 精确控制时间段 |
日志无法归档 | 检查目标节点的网络连通性与磁盘权限 |
TFA作为Oracle RAC环境下的重要诊断工具,大大提升了故障分析的效率。合理使用diagcollect
命令,不仅可以为DBA提供精准的日志支持,也能为Oracle SR快速提供所需信息。
建议将TFA作为RAC部署后的必配工具之一,定期检查版本并演练日志收集流程,以应对突发故障。
如需进一步了解TFA的高级功能(如事件触发、自定义模块等),请参考 Oracle 官方文档或 MOS 文章: