OSWatch作为官方推荐的监控rac工具,OSWatch有着至关重要的作用,可以协助dba进行详细排查。在系统卡顿、网络异常等情况下,通过执行操作系统命令来收集系统资源使用情况,它是部署在服务器上的,并且对服务器的性能消耗极低。
对于RAC环境,OSW工具几乎是必须部署的工具之一。分析一些比较复杂的故障根因时,如果没有OSW日志,最终很可能无法给出定论。
从11.2.0.4 RAC开始,自动安装的TFA工具中已经集成了OSW工具,不需要在重新部署,只需简单调整集成的OSW工具即可。
对于集成的OSW工具,如何调整,以及需要调整哪些地方呢?
以11.2.0.4 RAC为例,下面简单介绍一下:
1、查看OSWatch进程
language
$ ps -ef |grep oswbb
grid 8260 1 0 20:12 ? 00:00:01 /bin/sh ./OSWatcher.sh 30 48 NONE /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/archive
grid 11134 8260 0 20:13 ? 00:00:00 /bin/sh ./OSWatcherFM.sh 48 /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/archive
grid 54728 43474 0 21:24 pts/0 00:00:00 grep --color=auto oswbb
可以看出,OSW工具默认已经部署,通过OSWatcher.sh脚本后面的参数可以看出,默认的OSW工具,每30秒收集一次信息,收集的信息保存48小时。
信息文件最终存放在/u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/archive目录下的各个对应子目录中。
2、增加对心跳网络的监控
进入到OSW工具的主目录中,查看Exampleprivate.net 文件内容,里面有说明针对不同的操作系统,如何进行心跳网络的监控。
language
$ cat Exampleprivate.net
######################################################################
# This file contains examples of how to monitor private networks. To
# monitor your private networks create an executable file in this same
# directory named private.net. Use the example for your host os below.
# Make sure not to remove the last line in this file. Your file
# private.net MUST contain the rm lock.file line.
######################################################################
#Solaris Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv>
traceroute -I -r -F <node1-priv>
traceroute -r -F <node2-priv>
traceroute -I -r -F <node2-priv>
######################################################################
#HP Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv>
traceroute -r -F <node2-priv>
######################################################################
#Linux Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv>
traceroute -r -F <node2-priv>
######################################################################
#Tru64 Example
######################################################################
echo "zzz ***"`date`
traceroute -r -f <node1-priv>
traceroute -r -f <node2-priv>
######################################################################
#AIX Example
######################################################################
echo "zzz ***"`date`
traceroute -r <node1-priv>
traceroute -r <node2-priv>
######################################################################
# DO NOT DELETE THE FOLLOWING LINE!!!!!!!!!!!!!!!!!!!!!
######################################################################
rm locks/lock.file
- 以linux操作系统为例,创建private.net文件
- 默认情况下,OSW工具不会对RAC集群的心跳网络进行监控,而心跳网络的稳定性对于RAC集群至关重要。我们可以修改private.net文件内容,利用traceroute命令对RAC集群的心跳IP地址进行检测。
language
[grid@sbhis2 oswbb]$ cd /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/oswbb
[grid@sbhis2 oswbb]$ cat private.net
echo "zzz ***"`date`
traceroute -r -F sbhis1-priv
traceroute -r -F sbhis2-priv
rm locks/lock.file
- 修改private.net的权限,必须拥有执行权限,否则无法对心跳网络进行监控
language
[grid@sbhis2 oswbb]$ chown grid:oinstall private.net
[grid@sbhis2 oswbb]$ chmod +x private.net
3、修改OSW工具的默认监控频率及保存时间
OSW工具的配置文件为.osw.prop,默认配置是30秒取一次数据,保存48小时。我们可以修改该配置文件中的属性,例如:15秒取一次数据,将保存时间设置成3天。
language
$ cd /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid
$ ls
archive oswbb run_1701396395.log run_1705300959.log run_1712838670.log run_1712841159.log run_1718169890.log run_1721218363.log
$ cat .osw.prop
interval=30
hours=48
zip=NONE
runuser=grid
修改之后:时间间隔15秒;时间保存3天(72小时)。
language
$ cd /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid
$ ls
archive oswbb run_1701396395.log run_1705300959.log run_1712838670.log run_1712841159.log run_1718169890.log run_1721218363.log
$ cat .osw.prop
interval=15
hours=72
zip=NONE
runuser=grid
4、重启osw,使配置生效
language
[grid@sbhis2 oswbb]$ tfactl stop oswbb
Stopped OSWatcher
[grid@sbhis2 oswbb]$ tfactl start oswbb
Starting OSWatcher
5、检验配置是否生效
language
$ ps -ef|grep osw
grid 61714 1 0 21:35 pts/0 00:00:00 /bin/sh ./OSWatcher.sh 15 72 NONE /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/archive
grid 61876 61714 0 21:36 pts/0 00:00:00 /bin/sh ./OSWatcherFM.sh 72 /u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/archive
说明修改的监控频率和保存时间已生效
- 检查是否已经对心跳进行监控
language
[grid@sbhis2 oswbb]$ pwd
/u01/app/grid/tfa/repository/suptools/sbhis2/oswbb/grid/oswbb
[grid@sbhis2 oswbb]$ cd ../archive/
[grid@sbhis2 archive]$ cd osw
oswifconfig/ oswiostat/ oswmeminfo/ oswmpstat/ oswnetstat/ oswprvtnet/ oswps/ oswslabinfo/ oswtop/ oswvmstat/
[grid@sbhis2 archive]$ cd oswprvtnet/
[grid@sbhis2 oswprvtnet]$ ls
sbhis2_prvtnet_24.07.17.2100.dat
[grid@sbhis2 oswprvtnet]$ cat sbhis2_prvtnet_24.07.17.2100.dat
zzz ***Wed Jul 17 21:33:44 CST 2024
traceroute to sbhis1-priv (10.10.10.11), 30 hops max, 60 byte packets
1 sbhis1-priv (10.10.10.11) 0.097 ms 0.083 ms 0.075 ms
traceroute to sbhis2-priv (10.10.10.12), 30 hops max, 60 byte packets
1 sbhis2-priv (10.10.10.12) 0.023 ms 0.008 ms 0.006 ms
zzz ***Wed Jul 17 21:34:14 CST 2024
oswprvtnet已生成相应的监控文件,说明心跳监控生效中。
关注我,学习更多的数据库知识