怎么使用Oracle故障日志采集工具TFA

105次阅读
没有评论

共计 3243 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要介绍“怎么使用 Oracle 故障日志采集工具 TFA”,在日常操作中,相信很多人在怎么使用 Oracle 故障日志采集工具 TFA 问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用 Oracle 故障日志采集工具 TFA”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

收集日志信息是否是一个“高消耗”的体力活?很多情况下都是。

设想一下,如果数据库发生了一次 hang 的故障,而这套数据库有 8 个节点,我们可能需要收集 rdbms、ASM、grid、OS,osw 等等的日志信息,这项工作就是一个噩梦。即使在常见的两节点 RAC 环境中,恐怕也需要花费一小段的时间,而且可能还得不断进行后续的补充日志收集工作。

不熟悉环境,平台差异,需要筛选收集故障时间点的特定日志信息,数据库存在较多的节点,在需要收集日志的环境中存在文件管控等等很多的问题,都可能影响我们收集日志信息的速度和准确度,进而对问题分析定位的进度造成影响。

所以我们就有一个非常现实的问题,如何减少日志收集所消耗的时间并提高准确度,将更多的时间用于问题分析?

其实,Oracle 官方已经提供了解决方案—TFA(Trace File Analyzer Collector),这个工具能帮助我们真正实现一条命令完成日志收集。

1 版本以及安装  

官方列出 TFA 支持的平台:

Intel Linux (Enterprise Linux, RedHat Linux, SUSE Linux)

Linux on System Z

Linux Itanium

Oracle Solaris SPARC

Oracle Solaris x86-64

AIX

HPUX Itanium

HPUX PA-RISC

所有平台都需要 bash shell 3.2 以上版本及 JRE 1.5 以上版本支持。

TFA 工具理论上提供所有数据库版本的支持,同时提供对 RAC 和非 RAC 数据库的支持。但是,从当前所见的文档中,未见提及 10.2.0.4 之前的版本。

TFA 工具最早在 11.2.0.4 版本中随 grid 软件默认安装,默认安装路径为 grid 的 home 目录。11.2.0.4 之前版本的安装包中并未包含 TFA 工具,需要手工安装。

Oracle 官方列出的详细支持及安装情况如下:

TFA 更新的速度非常快,11.2.0.4 版本于 2013 年 8 月发布,自带的 TFA 工具版本为 2.5.1.5。目前(2015 年 10 月)最新版本为 12.1.2.5.2,我们可以从帮助菜单中看出两个版本间的巨大差别:

2.5.1.5 版本帮助菜单:

12.1.2.5.2 版本帮助菜单:

可以看到,12.1.2.5.2 版本相比 2.5.1.5 版本加入了大量的功能。

Oracle 对 TFA 的支持力度也在不断增大,甚至已经将 TFA 的更新包含在了 PSU 中。以 11.2.0.4 版本为例,GI PSU Fixed List 中我们可以找到以下信息:

即从 11.2.0.4.5 开始,GI PSU 中都包含有 TFA 的版本更新。在安装 GI PSU 的过程中 TFA 将自动进行安装。

2TFA 的工作方式  

从一张 Oracle 官方提供的 TFA 工作流程图上,我们可以清楚的看到 TFA 的工作方式:

DBA 发出 diagcollect 命令,启动 TFA 日志收集进程。

本地 TFA 发送收集请求至其他节点的 TFA,在其他节点上开始日志收集工作。

本地 TFA 也同时开始进行日志收集工作。

所有涉及节点的 TFA 日志都归档至发起 diagcollect 命令的 master 节点。

DBA 提取已归档的 TFA 日志信息,进行分析或提交 SR 进行处理

整个过程中,DBA 只需要执行一条命令,然后提取已归档的 TFA 日志。

3TFA 的使用

以 11.2.0.4 版本 RAC 和 12.1.2.5.2 版本 TFA 环境为例:

首先,我们来看最简单、通用的一个收集命令:

此命令将收集指定时间段 rdbms、ASM、grid、OS 的各类型日志,如 alert 日志、trace 文件、clusterware 各组件的日志、listener 日志、操作系统日志。执行过程中,对 alert 日志、listener 日志等连续性的日志处理也比较智能,能够截取指定时段的日志,而不会将整个日志文件 copy。如果部署有 osw 工具,还会自动收集 osw 的日志。

如果需要指定日志收集范围,比如仅收集数据库的相关日志,可以使用 tfactl diagcollect -database 命令。更多的使用方法可以参考 tfactl diagcollect -help 输出。

当前最新版本(12.1.2.5.2)的 TFA 也能够对 AWR 报告进行收集,命令示例如下:

但是在实际应用中发现,TFA 收集 AWR 报告的功能还不够完善。

对于 -database 参数,帮助菜单的说明为:

-database  Collect database logs from databases specified

目前,使用 -awrhtml 参数需要配合 -database 参数一同使用,但 -database 参数与 -awrhtml 参数配合使用的情况下,并不仅仅为指示数据库名称的作用,依然会出现收集数据库 alert 日志及 trace 文件的情况。即执行以上命令,将收集指定时间段的 AWR 报告,同时也会收集数据库 alert 日志和 trace 文件。

TFA 也带有自动收集的功能,可以对一些预定错误进行自动收集。预定的错误及收集规则可以参阅《Trace File Analyzer Collector User Guide》的 Appendix B. Scan Events 部分。该功能默认为关闭状态,可以使用以下命令手工启用:

tfactl set autodiagcollect=ON

此功能建议在测试环境中验证后再在生产环境中进行使用。

TFA 也能够承担一定的日志分析功能,能够实现一条命令自动对 DB ASM CRS 的 alert 日志、操作系统命令及部分 osw 日志进行分析,虽然与它的日志收集功能相比还不够强大。一个简单通用的分析命令:

tfactl analyze -since 7d

这条命令将分析查找所有(包括 DB/ASM/CRS/ACFS/OS/OSW/OSWSLABINFO)日志 7 天内 ERROR 级别的错误信息并提取。

《Trace File Analyzer Collector User Guide》所列出的 ERROR 级别信息如下:

也可以使用如下命令搜索自定义字符串:

TFA 工具默认仅对 root 用户和 grid 用户授予使用权限,如果使用 oracle 用户执行 tfactl diagcollect 命令将收到报错:

User oracle does not have keys to run TFA. Please check with TFA Admin(root)

建议同样授予 oracle 用户使用 TFA 的权限,方便日常使用。root 用户使用以下命令可以将 oracle 用户加入授权用户列表:

tfactl access add -user oracle

如果存在对收集日志的空间管理需求,可以使用 tfactl set 命令进行设置。当前设置情况可以通过

tfactl print config

命令进行输出,输出示例如下:

有关 TFA 使用和设置的更多信息可以参阅 tfactl - h 输出及《Trace File Analyzer Collector User Guide》文档。

MOS 上较少见到 TFA 运行过程中对 DB 或 GI 造成影响的描述,主要为以下两个问题:

怎么使用 Oracle 故障日志采集工具 TFA

如果在 Linux 平台下遇到 RAC 节点启动 hang 的问题并且环境中安装有 TFA,可以根据文档 1983567.1 的说明修改 oracle-tfa.conf 文件。文档 1668630.1 所提及的问题在 11.2.0.4.3 以上 PSU 中已修复,如果安装的 PSU 版本为 11.2.0.4.3 以上版本,可以忽略此问题。

到此,关于“怎么使用 Oracle 故障日志采集工具 TFA”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计3243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)