如何在LINUX下启动ORACLE

来源:互联网 发布:知远战略与防务研究所 编辑:程序博客网 时间:2024/06/02 07:43
手动启动:用 oracle用户登录(或su - oracle)lsnrctl start sqlplus / as sysdba  startup  exit自动启动,要编写一个启动脚本,用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 "$LSNR  start" # > /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 11g  Database 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 11g  Database 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" in  start)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
原创粉丝点击