zxpzj11 发表于 2013-1-29 14:47:07

LINUX下启动ORACLE

手动启动:用 oracle用户登录(或su - oracle)lsnrctl start sqlplus / as sysdbastartupexit自动启动,要编写一个启动脚本,用root用户拷到/etc/init.d下,取名叫oracle然后, chkconfig oracle on,即可加入服务列表/etc/init.d/oracle start   #启动/etc/init.d/oracle stop#停止脚本的示例(里面的变量要按实际情况修改):#!/bin/bash ## chkconfig:345 99 01# description: This is a program that is responsible for taking care of# configuring the Oracle Database 11g Stardard/Enterprise Edition and its associated # services. ## Source fuction libraryif [ -f /lib/lsb/init-functions ]then. /lib/lsb/init-functionselif [ -f /etc/init.d/functions ]then. /etc/init.d/functionsfi# Set path if path not set (if called from /etc/rc)case $PATH in    "") PATH=/bin:/usr/bin:/sbin:/etc      export PATH ;;esac# Save LD_LIBRARY_PATHSAVE_LLP=$LD_LIBRARY_PATHRETVAL=0ORACLE_OWNER=oracleORACLE_OWNER_HOME=/opt/oracleORACLE_BASE=$ORACLE_OWNER_HOME/app/oracleORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1ORACLE_SID=orclORACLE_UNQNAME=$ORACLE_SIDLSNR=$ORACLE_HOME/bin/lsnrctlSQLPLUS=$ORACLE_HOME/bin/sqlplusSTARTDB_SQL=$(mktemp /tmp/start.XXXXXX)echo -e "startup;\nquit;\n" > $STRTDB_SQLSTOPDB_SQL=$(mktemp /tmp/stop.XXXXXX)echo -e "shutdown immediate;\nquit;\n" > $STOPDB_SQLSU=/bin/suexport ORACLE_HOMEexport ORACLE_SIDexport PATH=$ORACLE_HOME/bin:$PATHLOG="$ORACLE_HOME_LISTNER/listener.log"export LC_ALL=Cif [ $(id -u) != "0" ]then    echo "You must be root to run the configure script.Login as root and then run the configure script."    exit 1fiif [ -f /etc/redhat-release ]then    . /etc/init.d/functions    init_status()    {return 0    }    exit_status()    {exit $?    }    success_status()    {successecho    }    failure_status()    {failure $?echo    }elif [ -f /etc/SuSE-release ]then    . /etc/rc.status    init_status()    {rc_reset    }    success_status()    {echo "OK"return 0    }    failure_status()    {echo "Failed"return 1    }    exit_status()    {exit $?    }else    if [ -d /etc/default ]    then      CONFIGURATION="/etc/default/$CONFIG_NAME"    fi    init_status()    {      return 0    }    success_status()    {      echo "OK"      return 0    }    failure_status()    {      echo "Failed"      return 0    }    exit_status()    {      exit $?    }fiinit_statusstart() {status=`ps -ef | grep tns | grep oracle`if [ "$status" == "" ]thenif [ -f $ORACLE_HOME/bin/tnslsnr ]          then   echo "Starting Oracle Net Listener."      $SU -s /bin/bash $ORACLE_OWNER -c "$LSNRstart" # > /dev/null 2>&1fifiecho "Starting Oracle Database 11g Instance."$SU -s /bin/bash$ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STARTDB_SQL}" # > /dev/null 2>&1    RETVAL=$?    if [ $RETVAL -eq 0 ]    then      echo    else      echo Failed to start Oracle Net Listener using $ORACLE_HOME/bin/tnslsnr\       and Oracle Database using $ORACLE_HOME/bin/sqlplus.      RETVAL=1return $RETVAL    fi    }startconsole() {    $SU -s /bin/bash$ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole &" # > /dev/null 2>&1    RETVAL=$?    return $RETVAL}stop() {    # Stop Oracle 11gDatabase and Listener    $SU -s /bin/bash$ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1    echo Shutting down Oracle Database 11g Instance.$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STOPDB_SQL}" # > /dev/null 2>&1echo Stopping Oracle Net Listener.    $SU -s /bin/bash$ORACLE_OWNER -c "$LSNR stop" # > /dev/null 2>&1    RETVAL=$?    echo   if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$LSNR    then      return $RETVAL    fi}stopconsole() {    # Stop Oracle 11gDatabase and Listener    $SU -s /bin/bash$ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1    RETVAL=$?    return $RETVAL}# See how we were calledcase "$1" instart)start       ;;startconsole)startconsole       ;;stop)stop      ;;stopconsole)stopconsole      ;;restart|reload|force-reload)      stop      start      RETVAL=$?      ;;*)      echo $"Usage: $0 {start|stop|restart|reload|force-reload}"      exit 1esac
页: [1]
查看完整版本: LINUX下启动ORACLE