前言:

    公司测试环境上装的oracle 11G,但系统服务没有配置,现需要将oracle配置为系统服务,并随系统启动,未接触过oracle百度了一堆,最好觉得这种方式最简便

正文:

    找到bin/dbstart和bin/dbshut这两个文件,切换到oracle用户,对这两个文件做修改

dbstart文件的80行上下

vim /oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
 #ORACLE_HOME_LISTNER=$1                            #变更前
 ORACLE_HOME_LISTNER=$ORACLE_HOME     #变更后

dbshut文件50行上下

vim /oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
#ORACLE_HOME_LISTNER=$1                               #变更前
ORACLE_HOME_LISTNER=$ORACLE_HOME        #变更后

创建oracle服务

vim /etc/init.d/oracle 
#!/bin/sh
# chkconfig: 35 90 90
# description: Oracle 11gR2
# /etc/init.d/oracle
#
# Run-level Stratup script for the Oracle Instance, Listener, and Web Interface
 
export LANG=zh_CN.GBK
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1/
export PATH=$PATH:$ORACLE_HOME/bin
 
ORA_OWNR="oracle"
 
case "$1" in
  start)
        su - $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
    #su - $ORA_OWER -lc "$ORACLE_HOME/bin/lsnrctl start"

        echo "Oracle Start Successful!"
        ;;
  stop)
        su - $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
        #su - $ORA_OWER -lc "$ORACLE_HOME/bin/lsnrctl start"
        echo "Oracle Stop Successful!"
        ;;
  reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo $"Usage: `basename $0` {start|stop|reload|restart}"
        exit 1
  esac
  exit 0

赋予oracle执行权限

chmod 755 /etc/init.d/oracle

添加到系统服务并启用

chkconfig oracle on

这样就可以使用服务来启动和停止oracle了,同时也将服务加入到了系统启动队列