就靠工具,洗个澡的时间就解决了一个Oracle性能故障!
Oracle MOS!这不是普通的网站,是DBA专属的“战备库”和“智囊团”,MOS的价值,就是让DBA更快止损、更有底气、持续精进,那么没有MOS怎么办?
最近一次故障enq: TX - row lock contention,不靠MOS,就靠TFA、OSW工具分析出了最后的根因,应用AP到DB服务器丢包导致行锁。
但是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.使用场景对比
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"
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的原始数据深入分析操作系统问题。
更多内容关注视频号
👇👇👇👇