Oracle 的AHF (Automatic Health Framework) 工具
Oracle AHF (Automatic Health Framework) 是 Oracle 官方提供的診斷工具集合,用于自動收集、分析和診斷 Oracle 數據庫及集群環境的健康狀態和問題。
一 AHF 核心功能概述
1. 主要組件
- TFA (Trace File Analyzer):日志收集和分析工具
- ORAchk/EXAchk:健康檢查工具(數據庫/Exadata專用)
- OSWatcher:操作系統性能監控工具
- DBPDA:數據庫性能診斷助手
2. 支持環境
- Oracle Database (單實例/RAC)
- Oracle Exadata
- Oracle GI (Grid Infrastructure)
- Oracle Cloud 環境
二 AHF 安裝與配置
1. 安裝準備
# 檢查系統要求
uname -a
df -h /tmp
df -h /opt# 下載AHF(需MOS賬號)
# 從My Oracle Support下載最新版本:
# Autonomous Health Framework (AHF) - Including TFA and ORAchk/EXAchk ( Doc ID 2550798.1 )
2. 安裝過程
# 解壓安裝包
[root@test tmp]# unzip AHF-LINUX_v25.5.0.zip
Archive: AHF-LINUX_v25.5.0.zipinflating: ahf_setup extracting: ahf_setup.dat inflating: README.txt inflating: oracle-tfa.pub # 執行檢查
[root@test tmp]# openssl dgst -sha256 -verify ./oracle-tfa.pub -signature ./ahf_setup.dat ./ahf_setup
Verified OK# 執行安裝
[root@test tmp]# ./ahf_setupAHF Installer for Platform Linux Architecture x86_64AHF Installation Log : /tmp/ahf_install_255000_2696_2025_06_11-07_15_58.logStarting Autonomous Health Framework (AHF) InstallationAHF Version: 25.5.0 Build Date: 202505290129Default AHF Location : /opt/oracle.ahfDo you want to install AHF at [/opt/oracle.ahf] ? [Y]|N : yAHF Location : /opt/oracle.ahfAHF Data Directory stores diagnostic collections and metadata.
AHF Data Directory requires at least 5GB (Recommended 10GB) of free space.Please Enter AHF Data Directory : /oracle_ahfAHF Data Directory : /oracle_ahf/oracle.ahf/dataDo you want to add AHF Notification Email IDs ? [Y]|N : nExtracting AHF to /opt/oracle.ahfSetting up AHF CLI and SDKSetting up compliance autoruns from AHFConfiguring TFA ServicesDiscovering Nodes and Oracle ResourcesSuccessfully generated certificates.Starting TFA Services
Created symlink from /etc/systemd/system/multi-user.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service.
Created symlink from /etc/systemd/system/graphical.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service..--------------------------------------------------------------------------.
| Host | Status of TFA | PID | Port | Version | Build ID |
+------+---------------+------+-------+------------+-----------------------+
| test | RUNNING | 5045 | 34489 | 25.5.0.0.0 | 250500020250529012923 |
'------+---------------+------+-------+------------+-----------------------'Running TFA Inventory....----------------------------------------------------------.
| Summary of AHF Configuration |
+-----------------+----------------------------------------+
| Parameter | Value |
+-----------------+----------------------------------------+
| AHF Location | /opt/oracle.ahf |
| TFA Location | /opt/oracle.ahf/tfa |
| Orachk Location | /opt/oracle.ahf/orachk |
| Data Directory | /oracle_ahf/oracle.ahf/data |
| Repository | /oracle_ahf/oracle.ahf/data/repository |
| Diag Directory | /oracle_ahf/oracle.ahf/data/test/diag |
'-----------------+----------------------------------------'AHF binaries are available in /opt/oracle.ahf/binAHF is successfully InstalledDo you want AHF to store your My Oracle Support Credentials for Automatic Upload ? Y|[N] : nMoving /tmp/ahf_install_255000_2696_2025_06_11-07_15_58.log to /oracle_ahf/oracle.ahf/data/test/diag/ahf/# 驗證安裝
[root@test tmp]# ahf -v
AHF version: 25.5.0
Build Timestamp: 20250529012923
TFA version: 25.5.0
Compliance version: 25.5.0
Compliance metadata version: 20250529
三、核心工具使用詳解
1. TFA (Trace File Analyzer)
基本操作
# 啟動TFA服務
tfactl start# 停止服務
tfactl stop# 檢查狀態
tfactl status# 收集診斷數據(指定問題ID)
tfactl diagcollect -srdc "ORA-00600" -database DB1
日志收集
# 收集最近24小時日志
tfactl diagcollect -all -since 24h# 收集特定時間范圍日志
tfactl diagcollect -all -from "Sep 01 08:00:00 2023" -to "Sep 01 18:00:00 2023"# 打包收集結果
tfactl diagcollect -zip -name DB_issue_20230901
2. ORAchk/EXAchk 健康檢查
數據庫檢查
# 標準檢查
orachk -profile database -all# 指定SID檢查
orachk -db orcl -check "Database Parameters"# 生成HTML報告
orachk -db orcl -html
Exadata專用檢查
# 完整Exadata檢查
exachk -all# 檢查特定組件
exachk -check "Cell Health"
3. OSWatcher 系統監控
啟動監控
# 啟動OSWatcher(默認30秒間隔,保留48小時數據)
$OSW_HOME/startOSW.sh 30 48# 停止監控
$OSW_HOME/stopOSW.sh
分析數據
# 生成CPU使用率報告
oswbba -i /opt/oracle.ahf/osw/archive -b "2023-09-01 08:00:00" -e "2023-09-01 18:00:00" -t cpu
四、輸出分析與報告
1. 報告解讀
# 查看最新檢查報告
ls -lrt /opt/oracle.ahf/orachk/output# 典型報告內容:
# - 執行摘要(通過/失敗檢查項統計)
# - 詳細發現(按嚴重性分類)
# - 修復建議
# - 參考文檔鏈接
2. 關鍵指標關注
- Critical/Warning 級別問題
- 配置偏差(與Oracle最佳實踐的差異)
- 性能瓶頸(高負載指標)
- 空間預警(存儲/內存/表空間)
五、最佳實踐
1. 維護建議
# 定期清理舊數據(保留30天)
tfactl purge -age 30# 更新AHF(每季度檢查更新)
ahf_update -check
ahf_update -install
2. 安全配置
# 限制訪問權限
chmod 750 /opt/oracle.ahf
chown -R oracle:oinstall /opt/oracle.ahf# 加密敏感數據收集
tfactl diagcollect -encrypt -password "MySecurePwd"
Oracle AHF 是DBA工具箱中的"瑞士軍刀",通過合理使用可以顯著提高問題診斷效率。建議:
- 生產環境全部安裝AHF
- 建立定期健康檢查機制
- 重大問題前自動收集診斷數據
- 保持工具版本更新