oracle自启动/停止设置


oracle自启动/停止设置


DBA可以把oracle设置成操作系统一起启动关闭,oracle自带了两个shell程序dbstart dbshut。dbstart用于启动数据库,dbshut  用于关闭数据库,两个程序启动时默认读取oratab配置(linux下:/etc/oratab solaris下:/var/opt/oracle/oratab)
所以需先修改oratab配置:

[root@oracle ~]# vi /etc/oratab
HERB:/opt/oracle/product/10.2.1/db_1:Y
#格式为(SID:ORACLE_HOME:AUTO)把AUTO域设置为Y(大写)。只有这样,oracle 自带的dbstart和dbshut才能够发挥作用

验证dbstart是否可以手工启动数据,若不能启动则操作系统启动时数据库肯定不能自动启动
[oracle@oracle ~]$ ./dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
提示环境变量设置问题
[oracle@oracle bin]$ grep ORACLE_HOME_LISTNER dbstart
# The Listener log is located at $ORACLE_HOME_LISTNER/listener.log
ORACLE_HOME_LISTNER=$ORACLE_HOME(此处路径设置不正确,改为$ORACLE_HOME或者其主目全路径即可)
if [ ! $ORACLE_HOME_LISTNER ] ; then
  echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
  LOG=$ORACLE_HOME_LISTNER/listener.log
  export ORACLE_HOME=$ORACLE_HOME_LISTNER
  if [ -x $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
    $ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &
    export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`
    echo "Failed to auto-start Oracle Net Listener using $ORACLE_HOME_LISTNER/bin/tnslsnr"
        $LOGMSG "Restart Oracle Net Listener using an alternate ORACLE_HOME_LISTNER: lsnrctl start"

编写脚本:
[root@oracle ~]# cat /etc/init.d/oracle
#!/bin/sh
#Edited by ....

ORACLE_HOME=/opt/oracle/product/10.2.1/db_1
LOG=$ORACLE_HOME/oracle.1.log
case "$1" in
start)
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> $LOG 2>&1
date +" %T %a %D : Starting Oracle Databasee as part of system up." >> $LOG 2>&1
su - oracle -c "$ORACLE_HOME/bin/dbstart" >> $LOG 2>&1
echo "Done."
date +" %T %a %D : Finished." >> $LOG 2>&1
echo "-------------------------------------------------" >> $LOG 2>&1
;;

stop)
echo "Stopping Oracle Databases ... "
echo "-------------------------------------------------" >> $LOG 2>&1
date +" %T %a %D : Stopping Oracle Databases as part of system down." >> $LOG 2>&1
su - oracle -c "$ORACLE_HOME/bin/dbshut" >> $LOG 2>&1
echo "Done."
date +" %T %a %D : Finished." >> $LOG 2>&1
echo "-------------------------------------------------" >> $LOG 2>&1

;;
restart)
$0 stop
$0 start

;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac

系统启动时启动数据库,我们需要以下连结∶
[root@oracle rc2.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle
[root@oracle rc2.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle
[root@oracle rc2.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle
要在重新启动时停止数据库,我们需要以下连结
[root@oracle rc2.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle
[root@oracle rc2.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle

1.手工关闭数据库执行service oracle start/stop/restart 测试
2.重启系统测试

注:启动数据库先启动监听,因dbstart/dbstop有启动和关闭监听项,故不用再脚本正添加,如下所示,若没有则需再脚本中添加一条即可!
[root@oracle bin]# cat dbstart |grep lsnrctl
    $ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &
[root@oracle bin]# cat dbshut |grep lsnrctl
    $ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 &


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值