参考:http://www.savedba.com/?p=591
OSWatcher Black Box, 简称OSW,是oracle提供的一个小但是非常有用的工具,它通过调用OS自己提供的命令来记录OS运行时的一些性能参数,比如CPU/Memory/Swap/Network IO/Disk IO相关的信息。
OSW工具的部署:
建议部署在root或者非oracle用户下
安装:
解压运行对应脚本即可使用:
tar -xvf osw.tar
卸载:只删除解压后的目录
rm -rf osw
启动:
./startOSWbb.sh
脚本会自动创建归档目录,用来存储收集的数据
startOSWbb.sh脚本有四个参数:
ARG1 = snapshot interval in seconds. 数据收集的频率
ARG2 = the number of hours of archive data to store. 归档数据保留的时间。
ARG3 = (optional) the name of a compress utility to compress each file automatically after it is created. 可选,用于在创建每个文件后自动压缩该文件的压缩实用程序的名称
ARG4 = (optional) an alternate (non default) location to store the archive directory.可选存储归档目录的备用(非默认)位置。
如果不输入任何参数,默认间隔30秒收集一次数据,并且默认保存48小时的数据。
示例1:
./startOSWbb.sh 60 10
This would startthe tool and collect data at 60 second intervals and log the last 10 hours ofdata to archive files.
--这个命令每隔60秒收集一次,数据保留10个小时。
示例2:
./startOSWbb.sh
NOTE: This would use the default values of 30, 48 and collect data at 30 second intervals andlog the last 48 hours of data to archive files.
--没有指定参数,使用默认值
nohup ./startOSWbb.sh 60 10 &
--使用nohup让脚本后台执行
一般在生产环境部署OSWatcher脚本一般使用如下方法
nohup ./startOSWbb.sh 60 48 NONE /oracle10g/oswatcher/archive &
关闭osw
./stopOSWbb.sh
在我管理的所有数据库当中,基本上都部署了OSW工具,现在也可称之为OSWbb,全称是OSWatcher Black Box,这也为提升了我的工作效率,定位也非常方便。OSW是oracle提供的一个监控工具,支持的平台也非常的广泛(包括AIN,Tru64,Solaris,HP-UX,Linux),原理就是调用OS的一些命令,定时的生成相关性能信息,而且占用的资源也是相当的小,对于后期的性能诊断,可以非常的快速定位问题,而且使用OSW监控有很多优点:安装部署简单,删除方便,体积小,消耗服务器的资源也非常的少,主要是平时不用维护,在服务器发生故障时,可以快速定位是OS层的问题还是DB层的问题。
OSW只会对OS度量,如果需要收集数据库度量,则可以部署LTOM,oracle的另一个数据库性能监控工具。这里就只介绍OSW,目前最新版本是2014-02-27号发布的版本,版本号是:oswbb7.1.3,在文章末尾有下载地址。下面简单是来演示一下如何在linux上部署osw,我这里使用是的Linux Suse enterprise sp 11.
OS层的问题还是DB层的问题。
OSW只会手机OS度量,如果需要收集数据库度量,则可以部署LTOM,oracle的另一个数据库性能监控工具。这里就只介绍OSW,目前最新版本是2014-02-27号发布的版本,版本号是:oswbb7.1.3,在文章末尾有下载地址。下面简单是来演示一下如何在linux上部署osw,我这里使用是的Linux Suse enterprise sp 11.
1. 如果是rac系统,要在每个节点上安装osw才能监控每个节点服务器的资源,首先上传oswbb713安装包到服务器安装目录
1 2 3 4 |
jerry@linux-fz9d:~> ll total 1428 drwxr-xr-x 2 jerry users 4096 Jul 12 2013 bin -rw-r--r-- 1 jerry users 1454080 Mar 26 07:34 oswbb713.tar |
2. 解压安装包,会得到一个oswbb的目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
jerry@linux-fz9d:~> tar -xvf oswbb713.tar oswbb/ oswbb/data/ oswbb/docs/ oswbb/docs/The_Analyzer/ oswbb/docs/The_Analyzer/oswbbaUserGuide.pdf oswbb/docs/The_Analyzer/OSW_Black_Box_Analyzer_Overview.pdf oswbb/docs/The_Analyzer/oswbba_README.txt oswbb/docs/OSWatcher_Black_Box/ oswbb/docs/OSWatcher_Black_Box/oswbb_README.txt oswbb/docs/OSWatcher_Black_Box/OSWatcherUserGuide.pdf oswbb/Exampleprivate.net oswbb/nfssub.sh oswbb/stopOSWbb.sh oswbb/call_du.sh oswbb/iosub.sh oswbb/profile/ oswbb/OSWatcherFM.sh oswbb/ltop.sh oswbb/mpsub.sh oswbb/call_uptime.sh oswbb/gif/ oswbb/psmemsub.sh oswbb/tar_up_partial_archive.sh oswbb/oswnet.sh oswbb/vmsub.sh oswbb/call_sar.sh oswbb/oswib.sh oswbb/startOSWbb.sh oswbb/Example_extras.txt oswbb/oswsub.sh oswbb/analysis/ oswbb/oswbba.jar oswbb/OSWatcher.sh oswbb/topaix.sh oswbb/tarupfiles.sh oswbb/xtop.sh oswbb/src/ oswbb/src/Thumbs.db oswbb/src/OSW_profile.htm oswbb/src/tombody.gif oswbb/src/missing_graphic.gif oswbb/src/coe_logo.gif oswbb/src/watch.gif oswbb/src/oswbba_input.txt oswbb/oswrds.sh jerry@linux-fz9d:~> ll total 1432 drwxr-xr-x 2 jerry users 4096 Jul 12 2013 bin drwxr-xr-x 8 jerry users 4096 Feb 27 08:21 oswbb -rw-r--r-- 1 jerry users 1454080 Mar 26 07:34 oswbb713.tar |
3. 到这里,安装osw就结束了,在第一次启动OSWBB时,脚本会自动创建归档目录,用来存储收集的数据,默认情况下会在安装oswbb的oswbb目录下创建该目录,如果想更改位置,在启动脚本之前将linux环境变量OSWWBB_ARCHIVE_DEST设置成期望的位置即可。毫无疑问OSW使用的都是linux系统命令,当然要想成功运行osw,系统上需要安装这些命令,并赋予oswbb执行这些命令,当然默认情况下这些都是安装了的。
4. 启动OSWBB程序,在安装目录下执行startOSWbb.sh脚本,该脚本包含4个参数,其中2个是可选的:
参数一:快照间隔,单位是秒,表示程序已多少秒的间隔收集数据。默认是30秒
参数二:存储周期,单位是小时,表示程序生产的归档存储的小时数。默认是24小时
参数三:可选,压缩工具的名称(比如gzip),可以自动将生成的文件进程压缩
上面三个参数经常使用。
参数四:可选,保存归档的非默认路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
示例 1:这将启动工具并以 30 秒间隔来收集数据,并将前 48 个小时的数据记录到归档文件。
./startOSWbb.sh
示例 2:这将启动工具并以 60 秒间隔来收集数据,并将前 10 个小时的数据记录到归档文件,并且自动压缩文件。
./startOSWbb.sh 60 10 gzip
示例 3:这将启动工具并以 60 秒间隔来收集数据,并将前 10 个小时的数据记录到归档文件,自动压缩文件,并且保存到一个非默认路径下。
./startOSWbb.sh 60 10 gzip /u02/oswbb/archive
示例 4:这将启动工具并以 60 秒间隔来收集数据,并将前 48 个小时的数据记录到归档文件,不自动压缩文件,并且保存到一个非默认路径下。
./startOSWbb.sh 60 48 NONE /u02/oswbb/archive
示例 5:这将启动该工具,将进程置于后台运行,允许工具在会话被终止后继续运行,以 60 秒间隔收集数据,并将前 10 个小时的数据记录到归档文件。
nohup ./startOSWbb.sh 60 10 & |
5. 停止OSWBB程序,直接运行安装目录下的stopOSWbb.sh脚本即可
1 |
jerry@linux-fz9d:~/oswbb> ./stopOSWbb.sh |
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
-------------后台执行脚本,脚本间隔30秒,保留5个小时的数据 jerry@linux-fz9d:~/oswbb> nohup ./startOSWbb.sh 30 5 &
-------------在安装目录下会生成一个archive目录,收集的数据默认放在这个目录 jerry@linux-fz9d:~/oswbb/archive> ll total 36 drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswiostat drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswmeminfo drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswmpstat drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswnetstat drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswprvtnet drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswps drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswslabinfo drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswtop drwxr-xr-x 2 jerry users 4096 Mar 26 08:05 oswvmstat
--------------关于生成的每个文件,这里就不介绍了,熟悉这些命令的管理员,看起来还是没有那么困难的 |
scp [email protected]:/home/oracle/tianjinding/oswbb811.tar ./
admin@oracle
下面是自己整理的部署OSW步骤 让OSW工具在服务器启动的时候自动开启
OSW
Oracle提供oswatcher 工具来监控系统资源使用情况。
OSWatcher 是Oracle的一个操作系统资源和网络监控工具,它通过调用OS的一些命令,比如:top, vmstat, iostat, ps ,netstat 等来收集CPU、内存、I/O、进程以及网络等情况。
请在下面的文档中下载这个工具:
Note:1526578.1 OSWatcher Black Box 用户指南
oswbb811
下面是启动并配置OSWatcher的例子:
1). 将下载后的压缩文件上传到主机并解压。
2). 设置私网间通讯检查:
a) 拷贝(cp)Exampleprivate.net 为 private.net 到同一个目录下.
cp Exampleprivate.net private.net
b).在private.net 中找到您对应的系统平台,替换下面的private_nodename1 , private_nodename2 为具体的私网IP或者主机名 (一般写主机名)
traceroute -r -F private_nodename1
traceroute -r -F private_nodename2
或者:
ping sqgc -c 5(sqgc是监控服务器)(不行都试试,总会可以的,这是两种方法)
c). 将private.net 中其它的平台部分删除。
d). 千万不要删除下面的内容:
rm locks/lock.file
vi private.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.
######################################################################
######################################################################
#Linux Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F zjhz-sq-eomsdb03
traceroute -r -F zjhz-sq-eomsdb04
######################################################################
rm locks/lock.file
3).启动OSWather:
nohup ./startOSWbb.sh 60 120 &
==>会每隔15秒搜集一次数据,将结果保留120 小时(5 天)。请根据您的需求,调整这两个参数。
==>生成的结果会存储在一个叫archive的目录中。
==>请确保您的磁盘空间足够容纳这些数据。
==>如果您想自动压缩生成的文件,请使用下面的命令来启动OSWatcher:
nohup ./startOSWbb.sh 15 120 gzip &
./startOSWbb.sh 60 120 gzip /opt/oracle/oswbb/archive &(只要是用来创建目录的)
10 3 * * * su - oracle -c /archive/xspaasd/clear_arch.sh >>/archive/xspaasd/deldte_arch.log &
查询:
ps -ef | grep osw
* * * * * sh /opt/cmcc/osw/oswbb/auto_start_osw.sh >>/opt/cmcc/osw/oswbb/auto_start_osw.log &
自动启动osw脚本:(在服务器上面部署的脚本,让OSW自启动)
模板:
[root@sqpaasa1 ~]# cat /opt/cmcc/osw/oswbb/auto_start_osw.sh
PROC_CNT=`ps -ef |grep OSW |grep archive |grep -v grep |wc -l`
if [ $PROC_CNT -ge 2 ]; then
echo $0 already running!
exit
fi
cd /opt/oracle/osw/oswbb(目录为实际安装的目录,注意修改)
./stopOSWbb.sh
./startOSWbb.sh 30 196 gzip /opt/oracle/osw/oswbb/archive &(目录为实际归档的目录)
echo `date`" start osw sucessful !"
exit
修改
vi auto_start_osw.sh
PROC_CNT=`ps -ef |grep OSW |grep archive |grep -v grep |wc -l`
if [ $PROC_CNT -ge 2 ]; then
echo $0 already running!
exit
fi
cd /opt/oracle/grid/tfa/repository/suptools/zjhz-xs-smgwmdsp01/oswbb/grid/oswbb
./stopOSWbb.sh
./startOSWbb.sh 60 120 gzip /opt/oracle/oswbb/archive &
echo `date`" start osw sucessful !"
exit
部署定时任务让OSW自启动
crontab -e
#auto_start_osw
* * * * * sh /opt/oracle/osw/oswbb/auto_start_osw.sh >>/opt/oracle/osw/oswbb/auto_start_osw.log &
特殊:
PROC_CNT=`ps -ef |grep OSW |grep archive |grep -v grep |wc -l`
if [ $PROC_CNT -ge 2 ]; then
echo $0 already running!
exit
fi
cd /opt/oracle/osw/oswbb/
./stopOSWbb.sh
./startOSWbb.sh 60 48 gzip /opt/oracle/osw/oswbb/archive &
echo `date`" start osw sucessful !"
exit
#auto_start_osw
* * * * * sh /opt/oracle/osw/oswbb/auto_start_osw.sh >>/opt/oracle/osw/oswbb/auto_start_osw.log &
15,30,35,40,5
* * * * * /opt/oracle/osw/oswbb/auto_start_osw.sh >>/opt/oracle/osw/oswbb/auto_start_osw.log