再谈OSWatcher部署的必要性
因为遇到一个故障,网络的haip冲突,网卡上意外绑定了Oracle的haip网段的地址,虽然后判断是IBM的IMM机制导致设备分配了169.254/16网段地址,但是由于缺乏ifconfig监控信息还是缺少足够的证据。这里重新部署了OSWatcher工具,给了相应连接和原厂高老师写的博客,分析得很不错,案例说明充分,也考虑到用户的担心,做个记录下把。
1 下载OSWatcher,参考文档,其中使用,注意事项,视频资料很全
OSWatcher (Includes: [Video]) (Doc ID 301137.1)
2 创建一个软件目录加压该软件
[oracle@rac1 ~]$ mkdir owsbb
[oracle@rac1 ~]$ cd owsbb
[oracle@rac1 oswbb]$ ls
oswbb840.tar
[oracle@rac1 oswbb]$ tar -xvf oswbb840.tar
oswbb/
oswbb/uncpr.bat
oswbb/sarsub.sh
oswbb/psmemsub.sh
oswbb/stopOSWbb.sh
oswbb/analysis/
oswbb/piddsub.sh
oswbb/arpsub.sh
oswbb/docs/
oswbb/docs/OSWatcher/
oswbb/docs/OSWatcher/oswbb_README.txt
oswbb/docs/OSWatcher/RAC_Traceroute_Automation_Readme.txt
oswbb/docs/OSWatcher/OSWatcherUserGuide.html
oswbb/docs/The_Analyzer/
oswbb/docs/The_Analyzer/AnalyzerUserGuide.html
oswbb/docs/The_Analyzer/oswbba_README.txt
oswbb/docs/OSWatcherOverview_840.pdf
oswbb/Exampleprivate.net
oswbb/tmp/
oswbb/oswbba.jar
oswbb/oswib.sh
oswbb/ltop.sh
oswbb/archive/
oswbb/oswnet.sh
oswbb/call_uptime.sh
oswbb/OSWatcher.sh
oswbb/vmsub.sh
oswbb/pidsub.sh
oswbb/src/
oswbb/src/js/
oswbb/src/js/bootstrap.js
oswbb/src/js/modernizr.js
oswbb/src/js/jquery-2.1.4.min.js
oswbb/src/js/THIRDPARTYLICENSE.txt
oswbb/src/js/jquery.lightbox.js
oswbb/src/js/tabs.js
oswbb/src/js/scripts.js
oswbb/src/js/templatemo_custom.js
oswbb/src/Thumbs.db
oswbb/src/fonts/
oswbb/src/fonts/FontAwesome.otf
oswbb/src/fonts/fontawesome-webfont.woff
oswbb/src/fonts/fontawesome-webfont.woff2
oswbb/src/fonts/fontawesome-webfont.eot
oswbb/src/fonts/fontawesome-webfont.ttf
oswbb/src/fonts/fontawesome-webfont.svg
oswbb/src/META-INF/
oswbb/src/META-INF/application-client.xml
oswbb/src/images/
oswbb/src/images/Thumbnail_Placeholder.png
oswbb/src/images/next.png
oswbb/src/images/bx_loader.gif
oswbb/src/images/close.png
oswbb/src/images/loading.gif
oswbb/src/images/previous.png
oswbb/src/css/
oswbb/src/css/templatemo_misc.css
oswbb/src/css/bootstrap.min.css
oswbb/src/css/style.css
oswbb/src/css/font-awesome.min.css
oswbb/src/css/templatemo_style.css
oswbb/src/css/animate.css
oswbb/src/pro.htm
oswbb/src/oswbba_input.txt
oswbb/topaix.sh
oswbb/xensub.sh
oswbb/iosub.sh
oswbb/oswsub.sh
oswbb/nfssub.sh
oswbb/xtop.sh
oswbb/genprvnet.sh
oswbb/oswrds.sh
oswbb/call_sar.sh
oswbb/call_du.sh
oswbb/ifconfigsub.sh
oswbb/mpsub.sh
oswbb/Example_extras.txt
oswbb/locks/
oswbb/OSWatcherFM.sh
oswbb/tar_up_partial_archive.sh
oswbb/data/
oswbb/tar_up_full_archive.sh
oswbb/gif/
oswbb/startOSWbb.sh
[oracle@rac1 oswbb]$ ls
oswbb oswbb840.tar
3 集群需要修改创建private.net文件
[oracle@rac1 oswbb]$ cd oswbb
[oracle@rac1 oswbb]$ cp Exampleprivate.net private.net
[oracle@rac1 oswbb]$ ls -lrt *pri*
-rwxr-xr-x 1 oracle dba 1864 Jul 15 2019 Exampleprivate.net
-rwxr-xr-x 1 oracle dba 1864 Jul 27 17:14 private.net
修改文件,只保留需要的部分
######################################################################
#Linux Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv>
traceroute -r -F <node2-priv>
rm locks/lock.file <<<<<这部分不要删除
4 启动OSWatcher
[oracle@rac1 oswbb]$ nohup ./startOSWbb.sh 15 120 & <<<<<<<<<启动OSWatcher 每个15秒刷新一次,保留5天120小时
会自动生成一个archive目录
[oracle@rac1 oswbb]$ cd archive
[oracle@rac1 archive]$ ls -lrt
total 0
drwxr-xr-x 2 oracle dba 6 Jul 27 17:07 oswarp
drwxr-xr-x 2 oracle dba 6 Jul 27 17:07 oswslabinfo
drwxr-xr-x 2 oracle dba 6 Jul 27 17:07 oswxentop
drwxr-xr-x 2 oracle dba 80 Jul 27 17:07 oswcpuinfo
drwxr-xr-x 2 oracle dba 43 Jul 27 17:07 oswvmstat
drwxr-xr-x 2 oracle dba 43 Jul 27 17:07 oswmpstat
drwxr-xr-x 2 oracle dba 44 Jul 27 17:07 oswnetstat
drwxr-xr-x 2 oracle dba 43 Jul 27 17:07 oswiostat
drwxr-xr-x 2 oracle dba 45 Jul 27 17:07 oswpidstatd
drwxr-xr-x 2 oracle dba 44 Jul 27 17:07 oswpidstat
drwxr-xr-x 2 oracle dba 46 Jul 27 17:07 oswnfsiostat
drwxr-xr-x 2 oracle dba 45 Jul 27 17:07 oswifconfig
drwxr-xr-x 2 oracle dba 40 Jul 27 17:07 oswtop
drwxr-xr-x 2 oracle dba 39 Jul 27 17:07 oswps
drwxr-xr-x 2 oracle dba 44 Jul 27 17:07 oswmeminfo
drwxr-xr-x 2 oracle dba 44 Jul 27 17:14 oswprvtnet
这里列出所有监控的指标,进入一个目录里面有记录的文件
[oracle@rac1 archive]$ cd oswifconfig
[oracle@rac1 oswifconfig]$ ls
rac1_ifconfig_21.07.27.1700.dat
[oracle@rac1 oswifconfig]$ cat rac1_ifconfig_21.07.27.1700.dat <<<<<<每隔15秒刷新一次数据
Linux OSWbb v8.4.0
zzz ***Tue Jul 27 17:07:31 CST 2021
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
RX: bytes packets errors dropped overrun mcast
33184 378 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
33184 378 0 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 0
备注:参考甲骨文高峰老师的博客,解释得很好,用户的担心也做了解释,总之利大于弊,还是需要安装的诊断工具。
https://blogs.oracle.com/database4cn/osw-oswatcher-black-box
+++ 为什么一定要部署OSW?
OSW并不是强制要部署的,并且有很多工具可以提供一样的功能,比如说mrtg, cacti, sar, nmon, enterprise manger grid control.
但是部署OSW有很多好处:
1. 它比较容易部署,并且容易删除。
2. 资源消耗比较小,不管是从CPU,内存还是磁盘空间来说。
3. 平时不需要维护,并且在发生问题时可以帮我们迅速定位问题是否发生在OS端
数据库是运行在OS之上的,如果OS发生了异常,那么数据库肯定也会受到影响;如果我们仅仅从数据库的角度去分析这样的问题时,很难有个好结果.
在平时的工作中,有一类问题很常见:在过去的某个时间段,数据库发生了一些问题,我们往往要找到问题的原因(root cause),之后才能做某些改动来避免它再次发生。对于这样的问题,OSW是非常有用的,举几个小例子:
1. 发生的问题并不是由于OS的异常引起的。这时候如果我们有在发生问题的时候收集的OSW数据,我们就可以立刻排除OS方面,把注意力投向DB/应用层。
2. 对于ORACLE Database Performance的问题,我们往往个方向就是排除OS的问题。
比如OS在某个时间段发生了很频繁的Swapping,那么内存相关的操作就会受到影响,数据库性能也会下降,表现在AWR中就会发现数据库有latch/mutex相关的等待。
3. 应用在某个时间段响应非常慢。AWR显示数据库非常的空闲,top5等待事件也都是很正常;从CPU,内存,Swap, Disk IO方面看也都很正常。后来发现OSW中关于网络的数据显示,发生问题时有非常多的丢包现象。如果当时没有收集到OSW的数据,那么基本上是不可能找到原因了。
4. 又比如某些ORA-04030的错误或者CJQ0, P00X, J00X进程不能启动的问题,如果我们部署了OSW,那么我们就能立刻知道这些错误是不是由于OS的内存短缺引起的。
5. 如果某个server process莫名hung住,我们可以通过OSW的信息来看当时这个进程是不是出于suspend的状态,是不是占用了太多的CPU/Memory。
6. 某些Listener hung的问题,我们也需要OSW的历史信息来进行下一步的分析。
7. Login Storm问题:客户的数据库系统突然变慢,从应用端,数据库的ASH,AWR报告中没有发现任何异常。但是通过OSW的ps的输出发现,在发生问题时, oracle 的server process比平时多了上千个。
实际上,OSW对于我们分析问题是非常有帮助的。如果当前OS上并没有部署任何的监控软件,那么强烈建议DBA来部署OSW。很多重要的生产环境都部署了OSW,在有关于DB Performance的问题时,他们往往会先提交OSW的输出。
+++ 大家对部署OSW的顾虑往往是:
1. 生产环境已经正常运行了很久了,基于稳妥的考虑,不能随便安装软件
2. OSW会不会带来副作用
OSW的工作机制是每隔一段时间调用OS提供的一些工具,比如ps, vmstat, netstat, mpstat, top;然后把这些工具的输出打印到文件里。 它不可避免的会消耗CPU, Disk IO, Disk Space, Memory;但是这些消耗的资源都是非常少的,在大部分的系统里都是可以忽略的。只有在某些极端情况下,部署OSW才会带来负面影响:系统已经是非常的忙,CPU使用率在90%以上;磁盘的free space已经没有了。所以大家的顾虑在大部分的情况下都是不必要的,部署OSW是没有什么风险的。
相关文章