作为分析问题的一个思路,我们可以简单的分成两类,一类是操作系统相关的,这类也包括硬件部分。另外一类是数据库相关的,这类也包括cell存储节点的使用。在下面的讨论中, 我们会从这两方面出发来看我们都有哪些工具可以帮助我们收集需要的信息
首先让我们看下,从操作系统层面,我们都有哪些工具可用,他们都适用于哪些场景。
对于cell节点,sundiag.sh脚本,这个脚本会收集所有与磁盘和flash 卡相关的信息,这对于诊断磁盘和flash卡硬件故障非常有帮助。它会列出故障卡的型号,这对于后续的替换很有帮助,当然,它也包括其他的信息,例如raid卡的信息,驱动日志等。
Sundiag.sh通常位于目录/opt/oracle.SupportTools/
ILOM Snapshot, 它会收集所有硬件的信息,关于disk,没有sundiag.sh那么详细。但至少它会报告系统硬件是否有任何问题。在IB交换机上也可以收集ilom snapshot。
收集ILOM snapshot基本步骤是:Login IlomàMaintenanceàsnapshot(dataset=normal, 不用勾选only collect log and encypt outp file 选项) MOS文档1448069.1提供了详细的收集步骤。
对于DB节点,通常是LDOM,solaris操作系统,explorer报告就非常重要,它会收集操作系统和硬件信息。它也会收集LDOM和zone的信息。当然如果我们需要收集LDOM信息,我们需要知道control或者primary domain, 因为只有在控制域,我们才能收集到其他domain的信息。提到控制域,有个现实的问题是,如何知道哪个域是控制域,这可以通过命令#virtinfo –a 实现,在命令的输出中,会告诉那个域是控制域。
下面的命令是个典型的收集explorer报告的命令,基于具体问题,可能会有不同的参数收集指定的信息,但通常下面的命令应该足够
#explorer -w default,smfextended,locazones
在之前的介绍中我们也提到,在supercluster中,我们也使用了ZFS存储,对于ZFS存储,我们有bundle patch,它会收集所有跟zfs存储相关的信息。
MOS文档1902651.1和1957298.1提供了具体步骤如何收集ZFS的Support Bundle
现在让我们来看下数据库层面
对于数据库的日志,在supercluster中, 大部分情况我们都会配置RAC,TFA绝对是一个好的工具收集数据库和RAC日志文件,在很多情况下,如果我们随着诊断的深入,需要检查更多的信息,这有可能一些重要的日志文件会被复写,导致分析问题不能继续下去。
TFA会一次性收集所有的信息。下面的几个使用方式是常用的,需要更改tfactl命令的路径:
/u01/app/11.2.0/grid/bin/tfactl diagcollect
没有时间指定,收集过去4小时内的所有信息,包括OSwatch/Exawatcher信息。
/u01/app/11.2.0/grid/bin/tfactl diagcollect -all -since 8h
收集过去8小时到现在的所有信息,包括OSwatch/Exawatcher信息
/u01/app/11.2.0/grid/bin/tfactl diagcollect -asm -node node1 -from Mar/4/2013 -to "Mar/5/2013 21:00:00"
收集指定时间段的ASM日志文件
MOS文档1513912.2介绍了如何使用TFA
Pstack和truss, 把这两个工具,放在这儿,从工具本身来讲,似乎并不合适,但是通常,我们会用这两个工具来诊断数据库的问题,因为从这两个工具,我们能够看到底层调用模块,这在某些情况非常有用。例如,oracle RAC,一个节点,加入cluster时候,始终报没有网络,但实际上,我们能够ping通对方,广播和多播也是好的,因为在加入cluster 集群时,oracle RAC会使用私网进行通信。在这种情况,pstack 就会打出调用的函数,truss就会列出操作系统的函数,我们就能看到是否在这过程中,相应的集群组件是否在某些指定的函数间无限循环。对分析问题提供帮助。
例如,对CSSD进程执行pstack和truss
#pstack <CSSPID> >/tmp/cssd_pstack.out
# truss -DeadElfo /tmp/gipc_truss_02.out -p <CSSPID>
对于数据库,您可能会列出一堆的诊断手段或者方法,例如system state dump,10046 trace等,这些都是针对一些特定场合,不可能把这些都列全,并且相信大部分从事DBA工作的都了解这些方法,在这里不做介绍
在这里提下,如果您能够访问MOS,文档1543258.2 列出了在每种情况下,应该检查哪些信息。这会非常有帮助。