分享
 
 
 

Oracle的标准系统服务脚本forLinux

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一、所谓标准系统服务,应该是满足以下几条标准的后台运行程序。

1) 用 chkconfig --add 来安装,用 chkconfig --list 检查状态。

2) 用 ntsysv 来定制某个服务,是否伴随机器的启动而自动启动。

3) 在图形模式下,可以用 serviceconf 来启动、停止、重启服务。

4) 开机象系统服务那样显示 starting,关机显示 shutting down。

二、下面是具体的 dbora 脚本,在 Redhat 7.3 上通过,本人已经验证了几十次,保证能运行。如果在您的系统不能运行,请告知。

备注:启动 lsnrctl 的时候不用 su- 而使用 su,否则失败,并且要求使用 oracle 用户本身的 BASH_ENV.脚本开头的几个 ORA_xxx参数都要依照实际情况写,否则会说找不到 Oracle 程序或者 pid.DOS 格式方便发文,拷下来后请大家用 UltraEdit 转为 Unix 格式。

------------------------------------------------------------------------

代码:

#!/bin/bash

#

#

/etc/rc.d/init.d/dbora

#

# Starts the dbora daemon

#

# chkconfig: 345 94 6

# description: Runs commands scheduled by the at command at the time #

specified when at was run, and runs batch commands when the load #

average is low enough.

# processname: dbora

#

# copyright: Written by Wwashington AT smth bbs, free to distribute. #

You must keep everything in this file, including the copyright #

announcement. Study demo: atd & postgresql in /etc/rc.d/init.d

# Source function library.

INITD=/etc/rc.d/init.d

. $INITD/functions

# Source system profile.

if [ -r /etc/profile ] ; then . /etc/profile ; fi

ORA_SID=udb01

ORA_USER=oracle

ORA_BASE=/udb01/app/oracle

ORA_HOME=/udb01/app/oracle/product/8.1.7

BASH_ENV=$ORA_BASE/.bashrc

test -x $ORA_HOME/bin/dbstart || exit 0

RETVAL=0

GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`

if ! [ "$GREP_UNIX" = "" ]

then

GREP_FLAG=ef

else

GREP_FLAG=efw

fi

RUNLEVEL=`runlevel | awk '{ print $2 }'`

# RUNLEVEL=6

case "$RUNLEVEL" in

3)

SH_FLAG=1

;;

4)

SH_FLAG=1

;;

5)

SH_FLAG=1

;;

*)

SH_FLAG=0

;;

esac

# Below is a debug info to display Show Flag

# echo RUNLEVEL=$RUNLEVEL , SH_FLAG=$SH_FLAG

#

#

See how we were called.

#

prog="dbora"

start() {

# Check flag, if dbora already started, quit dbora

if [ ! -f /var/lock/subsys/dbora ]; then

echo -n $"Starting $prog: "

# This is the background exec which can work under

# both CLI (dbora) and GUI mode (serviceconf). We

# must forward stderr to a file or null, otherwise

# dbora won't start with a return code in GUI mode

echo ""

echo "[oralog] -----"

echo "Starting Oracle8i: "

echo "-------------------------------------------------------------------------"

#

Please note that forward stderr(2) to /dev/null or &- means close stderr

su - $ORA_USER -c "$ORA_HOME/bin/dbstart /tmp/ORA-dbuplog" 2/dev/null

if [ $SH_FLAG -eq 1 ]; then

cat /tmp/ORA-dbuplog

fi

echo

echo "Starting TNS Listener:"

echo "-------------------------------------------------------------------------"

su $ORA_USER -c "$ORACLE_HOME/bin/lsnrctl start /tmp/ORA-lsnrlog" 2&-

if [ $SH_FLAG -eq 1 ]; then

cat /tmp/ORA-lsnrlog

fi

pid=`pidof -s ora_pmon_$ORA_SID`

if [ "$pid" == "" ]; then

RETVAL=1;

else

RETVAL=0;

fi

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbora

echo

fi

return $RETVAL

}

stop() {

echo -n $"Stopping $prog: "

# In order to use database local cmd to keep safe,

# we use dbshut instead of simply kill ora_ proc.

# When we reboot (runlevel = 0 or 6), no verbose.

# Force remove /var/lock/subsys/dbora to activate

if [ $SH_FLAG -eq 1 ]; then

echo ""

echo "[oralog] -----"

echo "Shutting down TNS Listener:"

echo "-------------------------------------------------------------------------"

su $ORA_USER -c "$ORACLE_HOME/bin/lsnrctl stop"

else

su $ORA_USER -c "$ORACLE_HOME/bin/lsnrctl stop /dev/null"

fi

if [ $SH_FLAG -eq 1 ]; then

echo

fi

if [ $SH_FLAG -eq 1 ]; then

echo "Shutting down Oracle8i: "

echo "-------------------------------------------------------------------------"

su - $ORA_USER -c "$ORA_HOME/bin/dbshut"

else

su - $ORA_USER -c "$ORA_HOME/bin/dbshut /dev/null"

fi

pid=`ps -$GREP_FLAG | grep -e ora_ -e lsnr | grep -v grep | awk '{ print $2 }'`

#

Show pids when shutdown failed, to see debug info

#

echo $pid

if [ $pid ]; then

failure ""

else

success ""

fi

echo ""

rm -f /var/lock/subsys/dbora

return $RETVAL

}

restart() {

echo "Restarting Oracle8i and Listener: "

echo "========================================================================="

stop

start

}

reload() {

restart

}

status_ol() {

echo "Checking Oracle8i and Listener: "

echo "========================================================================="

su - $ORA_USER -c "$ORA_HOME/bin/dbstat"

}

case "$1" in

start)

start

;;

stop)

stop

;;

reload|restart)

restart

;;

condrestart)

if [ -f /var/lock/subsys/dbora ]; then

restart

fi

;;

status)

status_ol

;;

*)

echo $"Usage: $0 {start|stop|restart|condrestart|status}"

exit 1

esac

exit $?

exit $RETVAL

刚才的文件是 /etc/rc.d/init.d/dbora,现在补充一个,$ORACLE_HOME/bin/dbstat

GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`

if ! [ "$GREP_UNIX" = "" ]

then

GREP_FILE=/usr/xpg4/bin/grep

GREP_FLAG=ef

else

GREP_FILE=/bin/grep

GREP_FLAG=efw

fi

echo

echo "# ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep"

echo

ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep

echo

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有