直接使用cat 查看这个文件:
gg1:/home/oracle> cat /etc/oratab # # This file is used by ORACLEutilities. It is created by root.sh # and updated by the Database ConfigurationAssistant when creating # a database. # A colon, ':', is used as the fieldterminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', arecomments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y|W>: # # The first and second fields are thesystem identifier and home # directory of the databaserespectively. The third filed indicates # to the dbstart utility that the databaseshould , "Y", or should not, # "N", be brought up at systemboot time. # # Multiple entries with the same$ORACLE_SID are not allowed. # # gg1:/u01/app/oracle/product/11.2.0.3/db_1:N
这里是我测试环境上的文件,在这个注释里面,对这个文件讲的比较清楚。/etc/oratab 由root.sh 脚本创建,在用DBCA 创建实例时也会更新这个文件。
当$ORACLE_SID:$ORACLE_HOME:<N|Y> 设置为Y时,允许实例自启动,当设置为N时,则不允许自启动。 这个文件里的配置仅仅起一个开关的作用,其并不会具体的执行启动和关闭,具体的操作由$ORACLE_HOME/bin/dbstart和dbshut 脚本来实现。 这2个脚本在执行时会检查/etc/oratab 文件里的配置,为Y时才能继续执行。
所以配置数据库自启动和关闭的步骤如下:
(1) 配置/etc/oratab
(2) 修改$ORACLE_HOME/bin/dbstart和dbshut,并将其添加到/etc/rc(.local) 文件中。
这里是使用oracle 自带的dbstart 和dbshut脚本,如果使用自己写的脚本来启动或关闭DB 就不需要关心这个文件的设置了。
gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>cat dbstart #!/bin/sh # # $Id: dbstart.sh 22-may-2008.05:05:45arogers Exp $ # Copyright (c) 1991, 2008, Oracle. Allrights reserved. # ################################### # # usage: dbstart $ORACLE_HOME # # This script is used tostart ORACLE from /etc/rc(.local). # It should ONLY beexecuted as part of the system boot procedure. # # This script will start all databaseslisted in the oratab file # whose third field is a"Y". If the third field is setto "Y" and # there is no ORACLE_SID for an entry (thefirst field is a *), # then this script will ignore that entry. --这里就是我们之前说的,这个仅启动/etc/oratab 文件中标记为Y的实例。 # # This script requires that ASMORACLE_SID's start with a +, and # that non-ASM instance ORACLE_SID's do notstart with a +. # # If ASM instances are to be started withthis script, it cannot be used inside an rc*.d directory, and should be invokedfrom rc.local only. Otherwise, the CSS service may not be available yet, andthis script will block init from completing the boot cycle. --如果是ASM 实例,那么只能从rc.local中调用,否则CSS 服务可能不可用。 # # If you want dbstart to auto-start asingle-instance database that uses # an ASM server that is auto-started by CRS(this is the default behavior # for an ASM cluster), you must change thedatabase's ORATAB entry to use # a third field of "W" and theASM's ORATAB entry to use a third field of "N". # These values specify that dbstartauto-starts the database only after # the ASM instance is up and running. --注意这里的W,其表示等待所有的ASM 实例启动完毕后在启动数据库。 # # Note: # Use ORACLE_TRACE=T for tracing thisscript. # # The progress log for each instancebringup plus Error and Warning message[s] # are logged in file $ORACLE_HOME/startup.log.The error messages related to # instance bringup are also logged tosyslog (system log module). # The Listener log is located at$ORACLE_HOME_LISTNER/listener.log --启动日志存放在$ORACLE_HOME/startup.log里。 # # On all UNIX platforms except SOLARIS # ORATAB=/etc/oratab # # To configure, update ORATAB withInstances that need to be started up # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y|W>: # An example entry: # main:/usr/lib/oracle/emagent_10g:Y # # Overall algorithm: --启动顺序 # 1) Bring up all ASM instances with 'Y'entry in status field in oratab entry --启动状态为Y的所有ASM 实例 # 2) Bring up all Database instances with'Y' entry in status field in # oratab entry --启动所有状态为Y的数据库实例 # 3) If there are Database instances with'W' entry in status field # then # iterate over all ASM instances (irrespective of 'Y' or 'N') AND # wait for all of them to be started # fi --如果数据库的状态为W,则等待ASM 实例启动完毕,再启动 # 4) Bring up all Database instances with'W' entry in status field in # oratab entry --启动所有状态为W的数据库实例 # ##################################### LOGMSG="logger -puser.alert -s " trap 'exit' 1 2 3 # for script tracing case $ORACLE_TRACE in T)set -x ;; esac # Set path if path not set (if called from/etc/rc) SAVE_PATH=/bin:/usr/bin:/etc:${PATH} ;export PATH SAVE_LLP=$LD_LIBRARY_PATH # First argument is used to bring up OracleNet Listener ORACLE_HOME_LISTNER=$1 if [ ! $ORACLE_HOME_LISTNER ] ; then echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start OracleNet Listener" echo "Usage: $0 ORACLE_HOME" else LOG=$ORACLE_HOME_LISTNER/listener.log #Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to # adifferent ORACLE_HOME for each entry in the oratab. export ORACLE_HOME=$ORACLE_HOME_LISTNER #Start Oracle Net Listener if[ -x $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then echo "$0: Starting Oracle Net Listener" >> $LOG2>&1 $ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 & VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTLfor " | cut -d' ' -f5 | cut -d'.' -f1` export VER10LIST else echo "Failed to auto-start Oracle Net Listener using$ORACLE_HOME_LISTNER/bin/tnslsnr" fi fi # Set this in accordance with the platform ORATAB=/etc/oratab if [ ! $ORATAB ] ; then echo "$ORATAB not found" exit 1; fi # Checks Version Mismatch between Listenerand Database Instance. # A version 10 listener is required for anOracle Database 10g database. # Previous versions of the listener are notsupported for use with an Oracle # Database 10g database. However, it ispossible to use a version 10 listener # with previous versions of the Oracledatabase. checkversionmismatch() { if[ $VER10LIST ] ; then VER10INST=`sqlplus -V | grep "Release " | cut -d' ' -f3 | cut-d'.' -f1` if [ $VER10LIST -lt $VER10INST ] ; then $LOGMSG "Listener version $VER10LIST NOT supported with Databaseversion $VER10INST" $LOGMSG "Restart Oracle Net Listener using an alternateORACLE_HOME_LISTNER:" $LOGMSG "lsnrctl start" fi fi } # Starts a DatabaseInstance startinst() { #Called programs use same database ID export ORACLE_SID #Put $ORACLE_HOME/bin into PATH and export. PATH=$ORACLE_HOME/bin:${SAVE_PATH} ; export PATH #add for bug # 652997 LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${SAVE_LLP} ; export LD_LIBRARY_PATH PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora SPFILE1=${ORACLE_HOME}/dbs/spfile.ora echo "" echo "$0: Starting up database \"$ORACLE_SID\"" date echo "" checkversionmismatch #See if it is a V6 or V7 database VERSION=undef if[ -f $ORACLE_HOME/bin/sqldba ] ; then SQLDBA=sqldba VERSION=`$ORACLE_HOME/bin/sqldba command=exit | awk ' /SQL\*DBA: (Release|Version)/ {split($3, V, ".") ; print V[1]}'` case $VERSION in "6") ;; *) VERSION="internal" ;; esac else if [ -f $ORACLE_HOME/bin/svrmgrl ] ; then SQLDBA=svrmgrl VERSION="internal" else SQLDBA="sqlplus /nolog" fi fi STATUS=1 if[ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf ] ; then STATUS="-1" fi if[ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.ora ] ; then STATUS="-1" fi pmon=`ps -ef | grep -w "ora_pmon_$ORACLE_SID" | grep -v grep` if[ "$pmon" != "" ] ; then STATUS="-1" $LOGMSG "Warning: ${INST} \"${ORACLE_SID}\" alreadystarted." fi if[ $STATUS -eq -1 ] ; then $LOGMSG "Warning: ${INST} \"${ORACLE_SID}\" possibly leftrunning when system went down (system crash?)." $LOGMSG "Action: Notify Database Administrator." case $VERSION in "6") sqldba"command=shutdown abort" ;; "internal") $SQLDBA$args <<EOF connect internal shutdown abort EOF ;; *) $SQLDBA $args <<EOF connect / as sysdba shutdown abort quit EOF ;; esac if [ $? -eq 0 ] ; then STATUS=1 else $LOGMSG "Error: ${INST} \"${ORACLE_SID}\" NOTstarted." fi fi if[ $STATUS -eq 1 ] ; then if [ -e $SPFILE -o -e $SPFILE1 -o -e $PFILE ] ; then case $VERSION in "6") sqldbacommand=startup ;; "internal") $SQLDBA<<EOF connect internal startup EOF ;; *) $SQLDBA <<EOF connect / as sysdba startup quit EOF ;; esac if [ $? -eq 0 ] ; then echo "" echo "$0: ${INST}\"${ORACLE_SID}\" warm started." else $LOGMSG "" $LOGMSG "Error: ${INST} \"${ORACLE_SID}\" NOTstarted." fi else $LOGMSG "" $LOGMSG "No init file found for ${INST}\"${ORACLE_SID}\"." $LOGMSG "Error: ${INST} \"${ORACLE_SID}\" NOTstarted." fi fi } # Starts an ASM Instance startasminst() { #Called programs use same database ID export ORACLE_SID ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` #Called scripts use same home directory export ORACLE_HOME #For ASM instances, we have a dependency on the CSS service. #Wait here for it to become available before instance startup. #Is the 10g install intact? Are all necessary binaries present? if[ ! -x $ORACLE_HOME/bin/crsctl ]; then $LOGMSG "$ORACLE_HOME/bin/crsctl not found when attempting tostart" $LOGMSG " ASM instance$ORACLE_SID." else COUNT=0 $ORACLE_HOME/bin/crsctl check css RC=$? while [ "$RC" != "0" ]; do COUNT=`expr $COUNT + 1` if [ $COUNT = 15 ] ; then # 15 tries with 20 sec interval => 5 minutes timeout $LOGMSG "Timed out waiting to start ASM instance$ORACLE_SID" $LOGMSG " CSS service is NOTavailable." exit $COUNT fi $LOGMSG "Waiting for Oracle CSS service to be available beforestarting " $LOGMSG " ASM instance $ORACLE_SID. Wait $COUNT." sleep 20 $ORACLE_HOME/bin/crsctl check css RC=$? done fi startinst } # Start of dbstartupscript # # Loop for every entry in oratab file andand try to start # that ORACLE. # # ASM instances need to be started before'Database instances' # ASM instance is identified with '+'prefix in ORACLE_SID # Following loop brings up ASM instance[s] cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then #same as NULL SID - ignore this entry ORACLE_SID="" continue fi #Proceed only if last field is 'Y'. if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "Y" ] ; then #If ASM instances if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then INST="ASM instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` # Called scripts use same home directory export ORACLE_HOME # file for logging script's output LOG=$ORACLE_HOME/startup.log touch $LOG chmod a+r $LOG echo "Processing $INST \"$ORACLE_SID\": log file$ORACLE_HOME/startup.log" startasminst >> $LOG 2>&1 fi fi ;; esac done # exit if there was any trouble bringing upASM instance[s] if [ "$?" != "0" ] ;then exit 2 fi # # Following loop brings up 'Database instances' # cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then #same as NULL SID - ignore this entry ORACLE_SID="" continue fi #Proceed only if last field is 'Y'. if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "Y" ] ; then #If non-ASM instances if [ `echo $ORACLE_SID | cut -b 1` != '+' ]; then INST="Database instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` # Called scripts use same home directory export ORACLE_HOME # file for logging script's output LOG=$ORACLE_HOME/startup.log touch $LOG chmod a+r $LOG echo "Processing $INST \"$ORACLE_SID\": log file$ORACLE_HOME/startup.log" startinst >> $LOG 2>&1 fi fi ;; esac done # # Following loop brings up 'Databaseinstances' that have wait state 'W' # cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then #same as NULL SID - ignore this entry ORACLE_SID="" continue fi #Proceed only if last field is 'W'. if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "W" ] ; then W_ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` #DB instances with 'W' (wait state) have a dependency on ASM instances via CRS. #Wait here for 'all' ASM instances to become available. cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if [ "$ORACLE_SID" = '*' ] ; then # same as NULL SID - ignore this entry ORACLE_SID="" continue fi if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then INST="ASM instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` if [ -x $ORACLE_HOME/bin/srvctl ] ; then COUNT=0 NODE=`olsnodes -l` RNODE=`srvctl status asm -n $NODE | grep "$ORACLE_SID isrunning"` RC=$? while [ "$RC" != "0" ]; # wait until this comes up! do COUNT=$((COUNT+1)) if [ $COUNT = 5 ] ; then # 5 tries with 60 sec interval=> 5 minutes timeout $LOGMSG "Error: Timed outwaiting on CRS to start ASM instance $ORACLE_SID" exit $COUNT fi $LOGMSG "Waiting for Oracle CRS service to start ASM instance$ORACLE_SID" $LOGMSG "Wait $COUNT." sleep 60 RNODE=`srvctl status asm -n $NODE | grep "$ORACLE_SID isrunning"` RC=$? done else $LOGMSG "Error: \"${W_ORACLE_SID}\" has dependency on ASMinstance \"${ORACLE_SID}\"" $LOGMSG "Error: Need $ORACLE_HOME/bin/srvctl to check thisdependency" fi fi # asm instance ;; esac done # innner while fi ;; esac done # outer while # by now all the ASM instances have come upand we can proceed to bring up # DB instance with 'W' wait status cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then #same as NULL SID - ignore this entry ORACLE_SID="" continue fi #Proceed only if last field is 'W'. if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "W" ] ; then INST="Database instance" if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then $LOGMSG "Error: ${INST} \"${ORACLE_SID}\" NOTstarted" $LOGMSG "Error: incorrect usage: 'W' not allowed for ASMinstances" continue fi ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` #Called scripts use same home directory export ORACLE_HOME #file for logging script's output LOG=$ORACLE_HOME/startup.log touch $LOG chmod a+r $LOG echo "Processing $INST \"$ORACLE_SID\": log file$ORACLE_HOME/startup.log" startinst >> $LOG 2>&1 fi ;; esac done gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>
gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>cat dbshut #!/bin/sh # # $Id: dbshut.sh 22-may-2008.05:19:31arogers Exp $ # Copyright (c) 1991, 2008, Oracle. Allrights reserved. # ################################### # # usage: dbshut $ORACLE_HOME # # This script is used to shutdown ORACLEfrom /etc/rc(.local). # It should ONLY be executed as part of thesystem boot procedure. # # This script will shutdown all databaseslisted in the oratab file # whose third field is a "Y" or"W". If the third field is setto "Y" and # there is no ORACLE_SID for an entry (thefirst field is a *), # then this script will ignore that entry. # # This script requires that ASMORACLE_SID's start with a +, and # that non-ASM instance ORACLE_SID's do notstart with a +. # # Note: # Use ORACLE_TRACE=T for tracing this script. # Oracle Net Listener is also shutdownusing this script. # # The progress log for each instanceshutdown is logged in file # $ORACLE_HOME/shutdown.log. # # On all UNIX platforms except SOLARIS # ORATAB=/etc/oratab # # To configure, update ORATAB withInstances that need to be shutdown # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # An example entry: # main:/usr/lib/oracle/emagent_10g:Y # ##################################### trap 'exit' 1 2 3 case $ORACLE_TRACE in T) set-x ;; esac # Set path if path not set (if called from/etc/rc) SAVE_PATH=/bin:/usr/bin:/etc:${PATH} ;export PATH SAVE_LLP=$LD_LIBRARY_PATH # The this to bring down Oracle Net Listener ORACLE_HOME_LISTNER=$1 if [ ! $ORACLE_HOME_LISTNER ] ; then echo"ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle NetListener" echo "Usage: $0 ORACLE_HOME" else LOG=$ORACLE_HOME_LISTNER/listener.log #Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to # adifferent ORACLE_HOME for each entry in the oratab. export ORACLE_HOME=$ORACLE_HOME_LISTNER #Stop Oracle Net Listener if[ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then echo "$0: Stoping Oracle Net Listener" >> $LOG2>&1 $ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 & else echo "Failed to auto-stop Oracle Net Listener using$ORACLE_HOME_LISTNER/bin/tnslsnr" fi fi # Set this in accordance with the platform ORATAB=/etc/oratab if [ ! $ORATAB ] ; then echo "$ORATAB not found" exit 1; fi # Stops an instance stopinst() { ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then ORACLE_SID="" fi # Called programs use same database ID export ORACLE_SID ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` # Called scripts use same home directory export ORACLE_HOME # Put $ORACLE_HOME/bin into PATH andexport. PATH=$ORACLE_HOME/bin:${SAVE_PATH} ; export PATH # add for bug 652997 LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${SAVE_LLP} ; export LD_LIBRARY_PATH PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora # See if it is a V6 or V7 database VERSION=undef if[ -f $ORACLE_HOME/bin/sqldba ] ; then SQLDBA=sqldba VERSION=`$ORACLE_HOME/bin/sqldba command=exit | awk ' /SQL\*DBA: (Release|Version)/ {split($3, V, ".") ; print V[1]}'` case $VERSION in "6") ;; *) VERSION="internal" ;; esac else if [ -f $ORACLE_HOME/bin/svrmgrl ] ; then SQLDBA=svrmgrl VERSION="internal" else SQLDBA="sqlplus /nolog" fi fi case $VERSION in "6") sqldbacommand=shutdown ;; "internal") $SQLDBA<<EOF connect internal shutdown immediate EOF ;; *) $SQLDBA <<EOF connect / as sysdba shutdown immediate quit EOF ;; esac iftest $? -eq 0 ; then echo "${INST} \"${ORACLE_SID}\" shut down." else echo "${INST} \"${ORACLE_SID}\" not shut down." fi } # # Loop for every entry in oratab file andand try to shut down # that ORACLE # # Following loop shuts down 'DatabaseInstance[s]' with 'Y' entry cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then # NULL SID - ignore ORACLE_SID="" continue fi #Proceed only if last field is 'Y' or 'W' if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "Y" ] ; then if [ `echo $ORACLE_SID | cut -b 1` != '+' ]; then INST="Database instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` LOG=$ORACLE_HOME/shutdown.log echo "Processing $INST \"$ORACLE_SID\": log file$LOG" stopinst >> $LOG 2>&1 fi fi ;; esac done # # Following loop shuts down 'DatabaseInstance[s]' with 'W' entry # cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if[ "$ORACLE_SID" = '*' ] ; then # NULL SID - ignore ORACLE_SID="" continue fi #Proceed only if last field is 'Y' or 'W' if[ "`echo $LINE | awk -F: '{print $NF}' -`" = "W" ] ; then if [ `echo $ORACLE_SID | cut -b 1` != '+' ]; then INST="Database instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` LOG=$ORACLE_HOME/shutdown.log echo "Processing $INST \"$ORACLE_SID\": log file$LOG" stopinst >> $LOG 2>&1 fi fi ;; esac done # # Following loop shuts down 'ASMInstance[s]' # cat $ORATAB | while read LINE do case$LINE in \#*) ;; #comment-line in oratab *) ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if [ "$ORACLE_SID" = '*' ] ; then # NULL SID - ignore ORACLE_SID="" continue fi #Proceed only if last field is 'Y'. #Entries whose last field is not Y or N are not DB entry, ignore them. if [ "`echo $LINE | awk -F: '{print $NF}' -`" = "Y"] ; then if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then INST="ASM instance" ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` LOG=$ORACLE_HOME/shutdown.log echo "Processing $INST \"$ORACLE_SID\": log file$LOG" stopinst >> $LOG 2>&1 fi fi ;; esac done gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>
通过以上信息,我们可以看出,我们只需要修改/etc/oratab脚本就可以了,dbstart 和dbshut命令可以从/etc/oratab里获取需要的参数值。
gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>ll /etc/oratab
-rw-rw-r-- 1 oracle oinstall 722 Jan 3020:36 /etc/oratab
gg1:/u01/app/oracle/product/11.2.0.3/db_1/bin>cat /etc/oratab
#
gg1:/u01/app/oracle/product/11.2.0.3/db_1:Y
# First argument is used to bring up OracleNet Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME
[root@gg1 ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* allthe other init scripts.
# You can put your own initialization stuffin here if you don't
# want to do the full Sys V style initstuff.
touch /var/lock/subsys/local
su - oracle -c"/u01/app/oracle/product/11.2.0.3/db_1/bin/dbstart"
su - oracle -c"/u01/app/oracle/product/11.2.0.3/db_1/bin/emctl start dbconsole"
这里注意必须用oracle 用户来启动脚本。
在我们的配置中,启动的包括监听,实例和OEM。
启动日志如下:
gg1:/u01/app/oracle/product/11.2.0.3/db_1>cat startup.log
/u01/app/oracle/product/11.2.0.3/db_1/bin/dbstart:Starting up database "gg1"
Mon Jan 30 20:48:26 CST 2012
SQL*Plus: Release 11.2.0.3.0 Production onMon Jan 30 20:48:31 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> Connected to an idle instance.
SQL> ORACLE instance started.
Total System Global Area 939495424 bytes
Fixed Size 2233960 bytes
Variable Size 675285400 bytes
Database Buffers 255852544 bytes
Redo Buffers 6123520 bytes
Database mounted.
Database opened.
SQL> Disconnected from Oracle Database11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining andReal Application Testing options
/u01/app/oracle/product/11.2.0.3/db_1/bin/dbstart:Database instance "gg1" warm started.
gg1:/u01/app/oracle/product/11.2.0.3/db_1>cat listener.log
/u01/app/oracle/product/11.2.0.3/db_1/bin/dbstart:Starting Oracle Net Listener
LSNRCTL for Linux: Version 11.2.0.3.0 -Production on 30-JAN-2012 21:24:37
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0.3/db_1/bin/tnslsnr:please wait...
TNSLSNR for Linux: Version 11.2.0.3.0 -Production
System parameter file is/u01/app/oracle/product/11.2.0.3/db_1/network/admin/listener.ora
Log messages written to/u01/app/oracle/diag/tnslsnr/gg1/listener/alert/log.xml
Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gg1)(PORT=1521)))
Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=gg1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date 30-JAN-2012 21:24:40
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0.3/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/gg1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gg1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Email: [email protected]
Skype: tianlesoftware
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook:http://www.facebook.com/tianlesoftware
-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----
DBA1 群:62697716(满); DBA2 群:62697977(满) DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA总群:104207940