Oracle笔记:oswbb在linux平台随系统自动启动
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
Oracle笔记:oswbb在linux平台随系统自动启动
欢迎大家加入ORACLE超级群:
17115662 免费解决各种ORACLE问题
今天跟同事聊天,同事说oswbb可以在linux平台实现自动启动了,其实要实现随OS自动启动是比较简单的,如:inittab就可以实现。
参考MOS文档:
How To Start OSWatcher Black Box (OSWBB) Every System Boot (文档 ID 580513.1)
1,OS平台版本与OSWBB版本
[root@orcl9i ~]# lsb_release -a
LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
Release: 4
Codename: NahantUpdate8
oswbb版本为7.2
2,安装oswbb-service-1.1.7-1.noarch.rpm包
[root@orcl9i ~]# rpm -ivh oswbb-service-1.1.7-1.noarch.rpm
Preparing… ########################################### [100%]
1:oswbb-service ########################################### [100%]
下面我们来看看/etc/init.d/oswbb的内容
[oracle@orcl9i oswbb]$ cat /etc/init.d/oswbb
#!/bin/bash
########################################################################
# vim: sw=8 ts=8
# Init file for Oracle OSWatcher
# chkconfig: 2345 99 01
# description: automatically run Oracle OSWatcher at boot time and \
# stop it upon system shutdown. Attempt to gracefully \
# recover from a crash by moving old OSWatcher logs \
# to archive-<iso-date>.
########################################################################
########################################################################
# source function library
########################################################################
. //etc/init.d/functions
########################################################################
########################################################################
# Establish default values
########################################################################
# Set OSW_HOME to the directory where your OSWatcher tools are installed
OSW_HOME=’/opt/oswbb’
# Set OSW_INTERVAL to the number of seconds between collections
OSW_INTERVAL=’30’
# Set OSW_RETENTION to the number of hours logs are to be retained
OSW_RETENTION=’48’
# Set OSW_USER to the owner of the OSW_HOME directory
OSW_USER=’root’
# Set OSW_COMPRESSION to the desired compression scheme
OSW_COMPRESSION=’gzip’
# Set OSW_ARCHIVE where the logs should be stored
OSW_ARCHIVE=’archive’
########################################################################
########################################################################
# pull in oswbb settings
########################################################################
[ -f //etc/oswbb.conf ] && . //etc/oswbb.conf
########################################################################
RETVAL=0
########################################################################
# Some functions to make the below more readable
########################################################################
LOCKFILE=/var/lock/subsys/oswbb
prog=’OSWatcher’
########################################################################
# start: push archive dir to timestamped backup, start new collection
########################################################################
start()
{
echo -n $”Starting $prog: “
/bin/su -c //usr///libexec/oswbb-service/oswbb-helper “${OSW_USER}” && success || failure
RETVAL=$?
[ “$RETVAL” = 0 ] && touch ${LOCKFILE}
echo
}
########################################################################
# stop: stop the service
########################################################################
stop()
{
echo -n $”Stopping $prog: “
if [ -f “${LOCKFILE}” ]; then
/bin/su -c “
set -e # Exit on any error;
cd “${OSW_HOME}”;
for x in ./stopOSWbb.sh ./stopOSW.sh; do
if [ -x “\${x}” ]; then
exec “\${x}”
fi
done
exit 1
” “${OSW_USER}” && success || failure
else
echo -n $”not running.”
failure
fi
RETVAL=$?
rm -f “${LOCKFILE}”
echo
}
########################################################################
# restart: stop, pause, then start the collection
########################################################################
restart() {
stop
sleep 10
start
}
########################################################################
# info: Show the operational parameters
########################################################################
info() {
echo $”${prog} Settings:”
echo -e $”\tOSW_ARCHIVE =\”${OSW_ARCHIVE}\””
echo -e $”\tOSW_COMPRESSION =\”${OSW_COMPRESSION}\””
echo -e $”\tOSW_HOME =\”${OSW_HOME}\””
echo -e $”\tOSW_INTERVAL =\”${OSW_INTERVAL}\””
echo -e $”\tOSW_RETENTION =\”${OSW_RETENTION}\””
echo -e $”\tOSW_USER =\”${OSW_USER}\””
if [ -f ${LOCKFILE} ]; then
echo -e $”\tLock file present.”
else
echo -e $”\tLock file not present.”
fi
}
########################################################################
# Decide what to do based on first comand line arg
########################################################################
case “$1” in
start)
start
;;
stop)
stop
;;
restart | reload)
restart
;;
condrestart)
if [ -f ${LOCKFILE} ] ; then
restart
fi
;;
status)
echo -n $”${prog} is “
if [ -f “${LOCKFILE}” ]; then
echo $”running.”
RETVAL=0
else
echo $”not running.”
RETVAL=1
fi
;;
info)
info
;;
*)
echo $”Usage: $0 {start|stop|reload|restart|condrestart|status|info}”
RETVAL=1
esac
exit $RETVAL
下面再来看看/usr///libexec/oswbb-service/oswbb-helper的内容
[oracle@orcl9i oswbb]$ cat /usr///libexec/oswbb-service/oswbb-helper
#!/bin/bash
########################################################################
# vim: sw=8 ts=8 filetype=bash
#
# Helper file for Oracle OSWatcher
#
########################################################################
########################################################################
# Establish default values
########################################################################
# Set OSW_HOME to the directory where your OSWatcher tools are installed
OSW_HOME=’/opt/oswbb’
# Set OSW_INTERVAL to the number of seconds between collections
OSW_INTERVAL=’30’
# Set OSW_RETENTION to the number of hours logs are to be retained
OSW_RETENTION=’48’
# Set OSW_USER to the owner of the OSW_HOME directory
OSW_USER=’root’
# Set OSW_COMPRESSION to the desired compression scheme
OSW_COMPRESSION=’gzip’
# Set OSW_ARCHIVE to where the output logs should be generated
OSW_ARCHIVE=’archive’
########################################################################
########################################################################
# pull in configuration settings
########################################################################
[ -f //etc/oswbb.conf ] && . //etc/oswbb.conf
########################################################################
set -e # Exit on any error;
cd “${OSW_HOME}”
mkdir -p “${OSW_ARCHIVE}”
for x in ./startOSWbb.sh ./startOSW.sh; do
if [ -x “${x}” ]; then
nohup “${x}” \
“${OSW_INTERVAL}” \
“${OSW_RETENTION}” \
“${OSW_COMPRESSION}” \
“${OSW_ARCHIVE}” \
>”${OSW_ARCHIVE}/heartbeat 2>&1 &
exit $?
fi
done
exit 1
4,启动服务
修改oswbb中的OSW_HOME平oswbb的解压目录
[root@orcl9i ~]# cat /etc/init.d/oswbb
#!/bin/bash
########################################################################
# vim: sw=8 ts=8
#
# Init file for Oracle OSWatcher
#
# chkconfig: 2345 99 01
# description: automatically run Oracle OSWatcher at boot time and \
# stop it upon system shutdown. Attempt to gracefully \
# recover from a crash by moving old OSWatcher logs \
# to archive-<iso-date>.
########################################################################
########################################################################
# source function library
########################################################################
. //etc/init.d/functions
########################################################################
########################################################################
# Establish default values
########################################################################
# Set OSW_HOME to the directory where your OSWatcher tools are installed
#OSW_HOME=’/opt/oswbb’
OSW_HOME=’/home/oracle/oswbb’
# Set OSW_INTERVAL to the number of seconds between collections
OSW_INTERVAL=’30’
# Set OSW_RETENTION to the number of hours logs are to be retained
OSW_RETENTION=’48’
# Set OSW_USER to the owner of the OSW_HOME directory
OSW_USER=’root’
# Set OSW_COMPRESSION to the desired compression scheme
OSW_COMPRESSION=’gzip’
# Set OSW_ARCHIVE where the logs should be stored
OSW_ARCHIVE=’archive’
启动报错
[root@orcl9i ~]# /etc/init.d/oswbb start
Starting OSWatcher: //usr///libexec/oswbb-service/oswbb-helper: line 34: cd: /opt/oswbb: No such file or directory
[FAILED]
再修改下面脚本内容
[root@orcl9i ~]# vi /usr///libexec/oswbb-service/oswbb-helper
#!/bin/bash
########################################################################
# vim: sw=8 ts=8 filetype=bash
#
# Helper file for Oracle OSWatcher
#
########################################################################
########################################################################
# Establish default values
########################################################################
# Set OSW_HOME to the directory where your OSWatcher tools are installed
OSW_HOME=’/home/oracle/oswbb’
# Set OSW_INTERVAL to the number of seconds between collections
OSW_INTERVAL=’30’
# Set OSW_RETENTION to the number of hours logs are to be retained
OSW_RETENTION=’48’
# Set OSW_USER to the owner of the OSW_HOME directory
OSW_USER=’root’
# Set OSW_COMPRESSION to the desired compression scheme
OSW_COMPRESSION=’gzip’
# Set OSW_ARCHIVE to where the output logs should be generated
OSW_ARCHIVE=’archive’
再次启动还是报错
[root@orcl9i ~]# /etc/init.d/oswbb start
Starting OSWatcher: //usr///libexec/oswbb-service/oswbb-helper: line 45: unexpected EOF while looking for matching `”‘
[FAILED]
去掉“
for x in ./startOSWbb.sh ./startOSW.sh; do
if [ -x “${x}” ]; then
nohup “${x}” \
“${OSW_INTERVAL}” \
“${OSW_RETENTION}” \
“${OSW_COMPRESSION}” \
“${OSW_ARCHIVE}” \
>${OSW_ARCHIVE}/heartbeat 2>&1 &
exit $?
fi
done
再启动正常
[root@orcl9i ~]# /etc/init.d/oswbb start
Starting OSWatcher: [ OK ]
总结:其实要做成自动启动是很方便的,我们只需要增加到/etc/inittab中去就可以了
下面是写成一个脚本
只在linux环境测试过
#!/bin/bash
########################################################################
# vim: sw=8 ts=8
#
# Init file for Oracle OSWatcher
#
# chkconfig: 2345 99 01
# description: automatically run Oracle OSWatcher at boot time and \
# stop it upon system shutdown. Attempt to gracefully \
# recover from a crash by moving old OSWatcher logs \
# to archive-<iso-date>.
########################################################################
########################################################################
# source function library
########################################################################
. //etc/init.d/functions
########################################################################
########################################################################
# Establish default values
########################################################################
# Set OSW_HOME to the directory where your OSWatcher tools are installed
OSW_HOME=’/home/oracle/oswbb’
# Set OSW_INTERVAL to the number of seconds between collections
OSW_INTERVAL=’30’
# Set OSW_RETENTION to the number of hours logs are to be retained
OSW_RETENTION=’48’
# Set OSW_USER to the owner of the OSW_HOME directory
OSW_USER=’oracle’
# Set OSW_COMPRESSION to the desired compression scheme
OSW_COMPRESSION=’gzip’
# Set OSW_ARCHIVE where the logs should be stored
OSW_ARCHIVE=$OSW_HOME/archive
########################################################################
########################################################################
# pull in oswbb settings
########################################################################
[ -f //etc/oswbb.conf ] && . //etc/oswbb.conf
########################################################################
RETVAL=0
########################################################################
# Some functions to make the below more readable
########################################################################
LOCKFILE=/var/lock/subsys/oswbb
prog=’OSWatcher’
########################################################################
# start: push archive dir to timestamped backup, start new collection
########################################################################
start()
{
echo -n $”Starting $prog: “
/bin/su -c “set -e # Exit on any error;
cd “${OSW_HOME}”
mkdir -p “${OSW_ARCHIVE}”
for x in ./startOSWbb.sh ./startOSW.sh; do
if [ -x “${x}” ]; then
nohup “${x}” \
“${OSW_INTERVAL}” \
“${OSW_RETENTION}” \
“${OSW_COMPRESSION}” \
“${OSW_ARCHIVE}” \
>${OSW_ARCHIVE}/heartbeat 2>&1 &
exit $?
fi
done
exit 1
” “${OSW_USER}” && success || failure
RETVAL=$?
[ “$RETVAL” = 0 ] && touch ${LOCKFILE}
echo
}
########################################################################
# stop: stop the service
########################################################################
stop()
{
echo -n $”Stopping $prog: “
if [ -f “${LOCKFILE}” ]; then
/bin/su -c “
set -e # Exit on any error;
cd “${OSW_HOME}”;
for x in ./stopOSWbb.sh ./stopOSW.sh; do
if [ -x “\${x}” ]; then
exec “\${x}”
fi
done
exit 1
” “${OSW_USER}” && success || failure
else
echo -n $”not running.”
failure
fi
RETVAL=$?
rm -f “${LOCKFILE}”
echo
}
########################################################################
# restart: stop, pause, then start the collection
########################################################################
restart() {
stop
sleep 10
start
}
########################################################################
# info: Show the operational parameters
########################################################################
info() {
echo $”${prog} Settings:”
echo -e $”\tOSW_ARCHIVE =\”${OSW_ARCHIVE}\””
echo -e $”\tOSW_COMPRESSION =\”${OSW_COMPRESSION}\””
echo -e $”\tOSW_HOME =\”${OSW_HOME}\””
echo -e $”\tOSW_INTERVAL =\”${OSW_INTERVAL}\””
echo -e $”\tOSW_RETENTION =\”${OSW_RETENTION}\””
echo -e $”\tOSW_USER =\”${OSW_USER}\””
if [ -f ${LOCKFILE} ]; then
echo -e $”\tLock file present.”
else
echo -e $”\tLock file not present.”
fi
}
########################################################################
# Decide what to do based on first comand line arg
########################################################################
case “$1” in
start)
start
;;
stop)
stop
;;
restart | reload)
restart
;;
condrestart)
if [ -f ${LOCKFILE} ] ; then
restart
fi
;;
status)
echo -n $”${prog} is “
if [ -f “${LOCKFILE}” ]; then
echo $”running.”
RETVAL=0
else
echo $”not running.”
RETVAL=1
fi
;;
info)
info
;;
*)
echo $”Usage: $0 {start|stop|reload|restart|condrestart|status|info}”
RETVAL=1
esac
exit $RETVAL
------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复等) TEL:18081072613,微信、QQ同手机号。