oracle启动服务

 目的:

 1) 实现 一键式启停 oracle 服务   如:    /etc/init.d/oracle   {  start    |    stop  |   restart    |  status   }

使用说明:

Linux下建立Oracle服务一键式启停操作步骤
1. 上传oracle脚本至/etc/init.d/oracle目录下,或拷贝代码至 vi /etc/init.d/oracle  需要赋值权限 chmod  750 /etc/init.d/oracle 
2. 增加配置服务 /sbin/chkconfig  --add  oracle 
3. 修改 vi    /etc/oratab  文件 
      $ORACLE_SID:$ORACLE_HOME:Y          #--是否自启动       示例xxxdb:/oracle/oradb/home:Y

      使用命令补齐上面的变量 su - oracle -c 'echo $ORACLE_SID' ;su - oracle -c 'echo $ORACLE_HOME'
4. 测试验证      /etc/init.d/oracle
       返回信息参考:Usage:   /etc/init.d/oracle  {   start    |    stop   |   restart    |   status   }

对应oracle代码参考:

#!/bin/bash

# Destription:  Oracle Database Service
# Example    :  /etc/init.d/oracle { start | stop | restart | status }
# Auther     :  xxxxxxxxxx
# Date       :  2015-1-15

# Shell functions sourced from /etc/rc.status:
. /etc/rc.status
# Reset status of this service
rc_reset

ORACLE_USER=oracle
ORA_HOME=$(su - oracle -c 'echo $ORACLE_HOME')

case "$1" in
    start)
        su - oracle -c '$ORACLE_HOME/bin/lsnrctl status'  > /dev/null 2>&1; su - oracle -c '$ORACLE_HOME/bin/lsnrctl status listener_ora' > /dev/null 2>&1
			 
		if [  $? == 0 ]; then 
            echo -e "\\033[1;32m Oracle service has already been start \\033[1;37m"
		 else
			 su - $ORACLE_USER -c '$ORACLE_HOME/bin/dbstart $ORACLE_HOME' > /dev/null 2>&1
             su - $ORACLE_USER -c "lsnrctl start"  > /dev/null 2>&1; su - $ORACLE_USER -c "lsnrctl start listener_ora" > /dev/null 2>&1
			 $0 status > /dev/null 2>&1
			 echo -e "\\033[1;32m Oracle service start successfully \\033[1;37m"
        fi
		
		# Remember status and be verbose
         rc_status -v
        ;;
    stop)
		su - oracle -c '$ORACLE_HOME/bin/lsnrctl status'  > /dev/null 2>&1;su - oracle -c '$ORACLE_HOME/bin/lsnrctl status listener_ora' > /dev/null 2>&1
			 
		if [  $? == 0 ]; then 
		     su - $ORACLE_USER -c '$ORACLE_HOME/bin/dbshut $ORACLE_HOME' > /dev/null 2>&1
		     su - $ORACLE_USER -c "lsnrctl stop"  > /dev/null 2>&1; su - $ORACLE_USER -c "lsnrctl stop listener_ora" > /dev/null 2>&1
		     killall -9 -u  $ORACLE_USER > /dev/null 2>&1
			 $0 status > /dev/null 2>&1
			 echo -e "\\033[1;32m Oracle service stop successfully \\033[1;37m"
		 else
			 echo -e "\\033[1;32m Oracle service has already been stop \\033[1;37m"
        fi
		
        # Remember status and be verbose
         rc_status -v
        ;;
    restart)
         $0 stop > /dev/null 2>&1 
         $0 start > /dev/null 2>&1 
         $0 status
		 
		 # Remember status and be verbose
         rc_status
         ;;
    status)
        su - oracle -c '$ORACLE_HOME/bin/lsnrctl status'  > /dev/null 2>&1; su - oracle -c '$ORACLE_HOME/bin/lsnrctl status listener_ora' > /dev/null 2>&1
			 
		if [  $? == 0 ]; then 
            echo -e "\\033[1;32m Oracle service running \\033[1;37m"  
		 else
			echo -e "\\033[1;32m Oracle service  Stop \\033[1;37m"
        fi

         # Rmember status and be verbose
           rc_status -v
       ;;
    *)
        echo "Usage: $0 { start | stop | restart | status }"
        exit 1
        ;;
esac
rc_exit


 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值