IT 邦德

就靠工具,洗个澡的时间就解决了一个Oracle性能故障!

Oracle MOS!这不是普通的网站,是DBA专属的“战备库”和“智囊团”,MOS的价值,就是让DBA更快止损、更有底气、持续精进,那么没有MOS怎么办?

最近一次故障enq: TX - row lock contention,不靠MOS,就靠TFA、OSW工具分析出了最后的根因,应用AP到DB服务器丢包导致行锁。

Image

但是TFA、OSW这两款神器你用的如何?诊断工具一键获取更新,让日志采集分析更高效,为排查铺平道路,接下来就给大家详细介绍下这两款神器。

Oracle的OSW(OSWatcher)和TFA(Trace File Analyzer Collector)是两款互补的日志采集与分析工具,但功能定位和使用场景存在显著差异!

1.功能定位

1.1 OSW(OSWatcher)

核心功能:专注于操作系统(OS)层性能监控,通过周期性执行top、vmstat、iostat、netstat等命令采集CPU、内存、I/O、网络等资源使用数据。

适用场景:用于排查操作系统资源瓶颈(如CPU高负载、网络延迟、磁盘I/O过载)引发的数据库问题。例如,RAC环境中的心跳网络异常可通过OSW的traceroute监控快速定位。

数据存储:默认每30秒采集一次,日志保存48小时,文件存储在$TFA_HOME/oswbb/archive目录下。

1.2 TFA(Trace File Analyzer Collector)

核心功能:全栈诊断工具,整合了OSW的功能,并扩展支持数据库日志(Alert Log、Trace文件)、集群日志(CRS、ASM)、AWR报告、ASH报告等数据的自动化收集与分析。

适用场景:适用于复杂环境(如RAC、Grid Infrastructure)的全局故障诊断,支持一键收集多个节点的日志,并按时间范围或问题类型(如ORA-600错误)过滤冗余数据。

集成特性:TFA内置了自动化分析引擎,可扫描日志中的错误级别事件(如ERROR、FATAL),并生成摘要报告。

2.架构与部署

OSW

独立部署:早期需单独安装OSW工具包(包含oswbb脚本和oswbba分析工具)。

轻量级:仅依赖Shell脚本和Java分析工具,对系统资源消耗极低。

TFA

集成部署:从Oracle 11.2.0.4起,TFA默认随Grid Infrastructure安装,并自动集成OSW作为子组件。

分布式架构:在RAC环境中,TFA通过一个主节点(Master)协调所有节点的日志收集,统一归档后供分析或上传至Oracle Support。

权限管理:默认仅允许root和grid用户执行,但可通过tfactl access add命令授权其他用户。

3.使用场景对比

Image

4.命令示例

OSW

启动监控:./OSWatcher.sh 30 48 NONE /archive_path(30秒采集间隔,保存48小时)

分析日志:oswbba -i /archive_path -b "2025-01-01 00:00:00" -e "2025-01-01 23:59:59"

Image

TFA

收集日志:tfactl diagcollect -database all -from "2025-01-01 00:00:00" -to "2025-01-01 23:59:59"

错误扫描:tfactl analyze -since 7d(分析近7天的ERROR级事件)

生成AWR报告:tfactl diagcollect -awrhtml -database <DB_NAME>

总结

OSW是操作系统监控的基石工具,适合单一节点的资源性能分析。

TFA是企业级诊断框架,整合了OSW并扩展了数据库和集群日志的自动化收集、分析与上报功能,尤其适合复杂环境下的快速故障定位。

推荐策略:在Oracle RAC或Grid Infrastructure环境中,优先使用TFA实现全栈诊断,必要时结合OSW的原始数据深入分析操作系统问题。

更多内容关注视频号

👇👇👇👇

图片