tfa 必须服务运行、权限正确、路径无误才能正常收集 rac 故障日志;验证用 tfactl status,常见问题包括未启动、旧进程残留、/opt/oracle.ahf 权限错误、systemd 未启用及缺少 perl-data-dumper 模块。

TFA 能一键收集 RAC 故障日志,但必须确保它已正确安装、服务在运行、且权限和路径无误;否则 tfactl 命令会静默失败或报错退出。
确认 TFA 服务处于 RUNNING 状态
执行 tfactl status 是最直接的验证方式。如果看到类似 STATUS: RUNNING 和非零 PID,说明服务可用;若显示 NOT RUNNING 或报错 TFA scheduler is not running,后续所有收集命令都无效。
- 常见原因包括:安装后未启动、升级后残留旧进程、
/opt/oracle.ahf下文件权限被修改(尤其tfa目录属主不是 root)、systemd 单元未启用 - RHEL7+ 环境建议检查:
systemctl status oracle-tfa.service,必要时手动启动:systemctl start oracle-tfa.service - 若提示
Can't locate Data/Dumper.pm,说明系统缺少 Perl 模块,需安装:yum install perl-Data-Dumper
用 tfactl diagcollect 指定范围收集日志
diagcollect 是 TFA 收集诊断日志的核心命令,不加参数会默认收集全部组件最近 24 小时日志,但生产环境通常需要精准控制。
- 按时间范围限定(避免打包过大):
tfactl diagcollect -since "2026-09-30 14:00" -until "2026-09-30 15:30" - 只收集特定组件(如 CRSD 启动失败):
tfactl diagcollect -component crs(可选值:crs、asm、rdbms、listener) - 限制节点范围(多节点集群中只收问题节点):
tfactl diagcollect -node rac01,多个节点用逗号:-node rac01,rac02 - 输出包默认放在
/u01/app/grid/oracle.ahf/data(安装时指定的data_dir),文件名含时间戳和节点名,例如:tfactl_diagcollect_20260930_1400_rac01.tar.gz
遇到 ERROR: ORACLE_HOME is not set 怎么办
这个错误不是 TFA 自身依赖 ORACLE_HOME,而是部分收集逻辑(如 RDBMS 日志定位)会调用 Oracle 工具链,触发环境变量校验。
- 必须为 root 用户设置
ORACLE_HOME,哪怕只收集 CRS/ASM 日志也要设 —— 否则diagcollect可能跳过关键日志路径 - 临时生效:
export ORACLE_HOME=/u01/app/19.0.0/grid(根据实际 GI HOME 路径调整) - 永久生效:在
/root/.bash_profile中添加该 export 行,并执行source /root/.bash_profile - 注意:不要设成数据库 ORACLE_HOME(如
/u01/app/oracle/product/19c/dbhome_1),TFA 优先读取 GI HOME 来定位集群日志
收集结果里为什么没有 crsd.log 或 alert.log?
TFA 默认只收集 ADR(Automatic Diagnostic Repository)结构下的日志,而 12c+ RAC 的 crsd.log、alert.log 实际存放在 ADR 路径中(如 $ADR_BASE/diag/crs/rac01/crs/trace/crsd.log),不是传统 $GRID_HOME/log 目录。
- 确认 ADR 基础路径是否可读:
ls -l $ADR_BASE/diag/crs/rac01/crs/trace/,若目录为空或权限拒绝,TFA 会跳过 - 若 ADR 路径异常(比如磁盘满、挂载丢失),TFA 不会报错,但收集包里对应日志缺失 —— 需先修复 ADR 可写性再重试
- 强制包含非 ADR 日志(如旧版
$GRID_HOME/log/rac01/crsd.log):加参数-include "$GRID_HOME/log/rac01",但需确保路径真实存在且 root 可读
真正卡住的点往往不在命令怎么写,而在 TFA 进程没跑起来、Perl 模块缺了、或者 ADR 路径不可达 —— 这些地方不显式报错,但会让 diagcollect 返回空包或漏关键日志。











