转:oracle随系统启动的脚本

原贴地址:[url]http://space.itpub.net/26162300/viewspace-704722[/url]

添加oracle随系统启动的脚本
启动脚本已随安装的软件安装到系统 不需要自己编写

脚本位置:

$ORACLE_HOME/bin/dbstart
$ORACLE_HOME/bin/dbshut

启动脚本中有一个路径变量值设置错误 要手动修正


[oracle@dba ~]$ sed -n '78p' $ORACLE_HOME/bin/dbstart
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
[oracle@dba ~]$ sed -i 's!/ade/vikrkuma_new/oracle!$ORACLE_HOME!' $ORACLE_HOME/bin/dbstart
[oracle@dba ~]$ sed -n '78p' $ORACLE_HOME/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
[oracle@dba ~]$

要想使dbstart命令生效 还需要修改/etc/oratab里的内容

[oracle@dba ~]$ grep $ORACLE_SID /etc/oratab
ora10g:/u01/oracle/product/10.2.0:N
[oracle@dba ~]$

改成

ora10g:/u01/oracle/product/10.2.0:Y

之后就可以使用dbstart和dbshut来启停数据库了

[oracle@dba ~]$ ps -ef | grep ora_ | grep -v grep
[oracle@dba ~]$ dbstart
Processing Database instance "ora10g": log file /u01/oracle/product/10.2.0/startup.log
[oracle@dba ~]$ ps -ef | grep ora_ | grep -v grep
oracle 12359 1 0 07:24 ? 00:00:00 ora_pmon_ora10g
oracle 12361 1 0 07:24 ? 00:00:00 ora_psp0_ora10g
oracle 12363 1 1 07:24 ? 00:00:00 ora_mman_ora10g
oracle 12365 1 0 07:24 ? 00:00:00 ora_dbw0_ora10g
oracle 12367 1 1 07:24 ? 00:00:00 ora_lgwr_ora10g
oracle 12369 1 0 07:24 ? 00:00:00 ora_ckpt_ora10g
oracle 12371 1 3 07:24 ? 00:00:00 ora_smon_ora10g
oracle 12373 1 0 07:24 ? 00:00:00 ora_reco_ora10g
oracle 12375 1 1 07:24 ? 00:00:00 ora_cjq0_ora10g
oracle 12377 1 7 07:24 ? 00:00:00 ora_mmon_ora10g
oracle 12379 1 0 07:24 ? 00:00:00 ora_mmnl_ora10g
oracle 12381 1 0 07:24 ? 00:00:00 ora_d000_ora10g
oracle 12383 1 0 07:24 ? 00:00:00 ora_s000_ora10g
oracle 12388 1 1 07:24 ? 00:00:00 ora_qmnc_ora10g
oracle 12394 1 12 07:24 ? 00:00:00 ora_j000_ora10g
[oracle@dba ~]$ dbshut
[oracle@dba ~]$ ps -ef | grep ora_ | grep -v grep
[oracle@dba ~]$

借助这两个命令结合shell_script写个自己的脚本


[oracle@dba ~]$ cat /etc/rc.d/init.d/dbora
#!/bin/bash
# chkconfig: 35 85 90
# description: Oracle auto start-stop script.
# AUTH:seker

. /etc/init.d/functions
start(){
if ps aux | grep ora_ | grep -v grep &>/dev/null
then
echo -n $"cannot start database: database is already running."
failure $"cannot start database: database is already running."
echo
exit 1
else
echo -n $"Starting Database: "
daemon su - $ORA_OWNER -c "dbstart" && touch /var/lock/subsys/`basename $0`
echo
fi

}
stop(){
if ps aux | grep ora_ | grep -v grep &>/dev/null
then
echo -n $"Stoping Database: "
daemon su - $ORA_OWNER -c "dbshut" && rm -f /var/lock/subsys/`basename $0`
echo
else
echo -n $"cannot stop database:Database is not already running."
failure $"cannot stop database:Database is not already running."
echo
exit 1
fi
}
ORA_OWNER=oracle
case "$1" in
start)
start
;;
stop)
stop
;;
emstart)
su - $ORA_OWNER -c 'emctl status dbconsole &>/dev/null && echo "OEM is already running" || emctl start dbconsole'
;;
emstop)
su - $ORA_OWNER -c 'emctl status dbconsole &>/dev/null && emctl stop dbconsole || echo "OEM is not running"'
;;
isqlstart)
su - $ORA_OWNER -c 'ps aux | grep 'isqlplus/config/server.xml' | grep -v grep &>/dev/null || isqlplusctl start'
;;
isqlstop)
su - $ORA_OWNER -c 'ps aux | grep 'isqlplus/config/server.xml' | grep -v grep &>/dev/null && isqlplusctl stop || echo "isqlplus is not running"'
;;
lsnstart)
su - $ORA_OWNER -c 'lsnrctl status &>/dev/null && echo "listen is already running" || lsnrctl start &>/dev/null'
;;
lsnstop)
su - $ORA_OWNER -c 'lsnrctl status &>/dev/null && lsnrctl stop &>/dev/null || echo "lsnrctl is not already running"'
;;
*)
echo "USAGE: $0 {start|stop|lsnstart|lsnstop|emstart|emstop|isqlstart|isqlstop}"
echo -e "\tstart : database start"
echo -e "\tstop : database stop"
echo -e "\tlsnstart : listen start"
echo -e "\tlsnstop : listen stop"
echo -e "\temstart : OEM start"
echo -e "\temstop : OEM stop"
echo -e "\tisqlstart : isqlplus start"
echo -e "\tisqlstop : isqlplus stop"
esac
[oracle@dba ~]$

添加到启动脚本目录
[code="java"]
# chmod +x /etc/rc.d/init.d/dbora
# chkconfig --add dbora
[/code]
也可以使用service调用
[code="java"]
# service dbora stop
# service dbora start
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值