`
wsql
  • 浏览: 11776752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Start/stop Oracle&nbs…

 
阅读更多
[root@emsrv init.d]# cat dbora
#!/bin/sh
#
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
<wbr><wbr><wbr> echo "Oracle startup: cannot start"<br><wbr><wbr><wbr> exit<br> fi<br><br> case "$1" in<br><wbr><wbr><wbr> 'start')<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # Start the Oracle databases:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # The following command assumes that the oracle login<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # will not prompt the user for any values<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orastart<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ;;<br><wbr><wbr><wbr> 'stop')<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # Stop the Oracle databases:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # The following command assumes that the oracle login<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> # will not prompt the user for any values<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orashut<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ;;<br> esac<br><br><br><br> [root@emsrv init.d]# cat /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbstart<br> #!/bin/sh<br> #<br> # $Id: dbstart.sh 22-may-2008.05:05:45 arogers Exp $<br> # Copyright (c) 1991, 2008, Oracle. All rights reserved. <wbr><br> #<br><br> ###################################<br> #<br> # usage: dbstart $ORACLE_HOME<br> #<br> # This script is used to start ORACLE from /etc/rc(.local).<br> # It should ONLY be executed as part of the system boot procedure.<br> #<br> # This script will start all databases listed in the oratab file<br> # whose third field is a "Y".<wbr> If the third field is set to "Y" and<br> # there is no ORACLE_SID for an entry (the first field is a *),<br> # then this script will ignore that entry.<br> #<br> # This script requires that ASM ORACLE_SID's start with a +, and<br> # that non-ASM instance ORACLE_SID's do not start with a +.<br> #<br> # If ASM instances are to be started with this script, it cannot<br> # be used inside an rc*.d directory, and should be invoked from<br> # rc.local only. Otherwise, the CSS service may not be available<br> # yet, and this script will block init from completing the boot<br> # cycle.<br> #<br> # If you want dbstart to auto-start a single-instance database that uses<br> # an ASM server that is auto-started by CRS (this is the default behavior<br> # for an ASM cluster), you must change the database's ORATAB entry to use<br> # a third field of "W" and the ASM's ORATAB entry to use a third field of "N".<br> # These values specify that dbstart auto-starts the database only after<br> # the ASM instance is up and running.<br> #<br> # Note:<br> # Use ORACLE_TRACE=T for tracing this script.<br> #<br> # The progress log for each instance bringup plus Error and Warning message[s]<br> # are logged in file $ORACLE_HOME/startup.log. The error messages related to<br> # instance bringup are also logged to syslog (system log module).<br> # The Listener log is located at $ORACLE_HOME_LISTNER/listener.log<br> #<br> # On all UNIX platforms except SOLARIS<br> # ORATAB=/etc/oratab<br> #<br> # To configure, update ORATAB with Instances that need to be started up<br> #<wbr><wbr><wbr> Entries are of the form:<br> #<wbr><wbr><wbr> $ORACLE_SID:$ORACLE_HOME::<br> #<wbr><wbr><wbr> An example entry:<br> #<wbr><wbr><wbr> main:/usr/lib/oracle/emagent_10g:Y<br> #<br> # Overall algorithm:<br> # 1) Bring up all ASM instances with 'Y' entry in status field in oratab entry<br> # 2) Bring up all Database instances with 'Y' entry in status field in<br> #<wbr><wbr><wbr> oratab entry<br> # 3) If there are Database instances with 'W' entry in status field<br> #<wbr><wbr><wbr> then<br> #<wbr><wbr><wbr><wbr><wbr> iterate over all ASM instances (irrespective of 'Y' or 'N') AND<br> #<wbr><wbr><wbr><wbr><wbr> wait for all of them to be started<br> #<wbr><wbr><wbr> fi<br> # 4) Bring up all Database instances with 'W' entry in status field in<br> #<wbr><wbr><wbr> oratab entry<br> #<br> #####################################<br><br> LOGMSG="logger -puser.alert -s "<br><br> trap 'exit' 1 2 3<br><br> # for script tracing<br> case $ORACLE_TRACE in<br><wbr> T) set -x ;;<br> esac<br><wbr><wbr><wbr><br> # Set path if path not set (if called from /etc/rc)<br> SAVE_PATH=/bin:/usr/bin:/etc:${PATH} ; export PATH<br> SAVE_LLP=$LD_LIBRARY_PATH<br><br> # First argument is used to bring up Oracle Net Listener<br> ORACLE_HOME_LISTNER=$1<br> if [ ! $ORACLE_HOME_LISTNER ] ; then<br><wbr> echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"<br><wbr> echo "Usage: $0 ORACLE_HOME"<br> else<br><wbr> LOG=$ORACLE_HOME_LISTNER/listener.log<br><br><wbr> # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to<br><wbr> # a different ORACLE_HOME for each entry in the oratab.<br><wbr> export ORACLE_HOME=$ORACLE_HOME_LISTNER<br><br><wbr> # Start Oracle Net Listener<br><wbr> if [ -x $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then<br><wbr><wbr><wbr> echo "$0: Starting Oracle Net Listener" &gt;&gt; $LOG 2&gt;&amp;1<br><wbr><wbr><wbr> $ORACLE_HOME_LISTNER/bin/lsnrctl start &gt;&gt; $LOG 2&gt;&amp;1 &amp;<br><wbr><wbr><wbr> VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`<br><wbr><wbr><wbr> export VER10LIST<br><wbr> else<br><wbr><wbr><wbr> echo "Failed to auto-start Oracle Net Listener using $ORACLE_HOME_LISTNER/bin/tnslsnr"<br><wbr> fi<br> fi<br><br> # Set this in accordance with the platform<br> ORATAB=/etc/oratab<br> if [ ! $ORATAB ] ; then<br><wbr> echo "$ORATAB not found"<br><wbr> exit 1;<br> fi<br><br> # Checks Version Mismatch between Listener and Database Instance.<br> # A version 10 listener is required for an Oracle Database 10g database.<br> # Previous versions of the listener are not supported for use with an Oracle<br> # Database 10g database. However, it is possible to use a version 10 listener<br> # with previous versions of the Oracle database.<br> checkversionmismatch() {<br><wbr> if [ $VER10LIST ] ; then<br><wbr><wbr><wbr> VER10INST=`sqlplus -V | grep "Release " | cut -d' ' -f3 | cut -d'.' -f1`<br><wbr><wbr><wbr> if [ $VER10LIST -lt $VER10INST ] ; then<br><wbr><wbr><wbr><wbr><wbr> $LOGMSG "Listener version $VER10LIST NOT supported with Database version $VER10INST"<br><wbr><wbr><wbr><wbr><wbr> $LOGMSG "Restart Oracle Net Listener using an alternate ORACLE_HOME_LISTNER:"<br><wbr><wbr><wbr><wbr><wbr> $LOGMSG "lsnrctl start"<br><wbr><wbr><wbr> fi<br><wbr> fi<br> }<br><br> # Starts a Database Instance<br> startinst() {<br><wbr> # Called programs use same database ID<br><wbr> export ORACLE_SID<br><br><wbr> # Put $ORACLE_HOME/bin into PATH and export.<br><wbr> PATH=$ORACLE_HOME/bin:${SAVE_PATH} ; export PATH<br><wbr> # add for bug # 652997<br><wbr> LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${SAVE_LLP} ; export LD_LIBRARY_PATH<br><wbr> PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora<br><wbr> SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora<br><wbr> SPFILE1=${ORACLE_HOME}/dbs/spfile.ora<br><br><wbr> echo ""<br><wbr> echo "$0: Starting up database "$ORACLE_SID""<br><wbr> date<br><wbr> echo ""<br><br><wbr> checkversionmismatch<br><br><wbr> # See if it is a V6 or V7 database<br><wbr> VERSION=undef<br><wbr> if [ -f $ORACLE_HOME/bin/sqldba ] ; then<br><wbr><wbr><wbr> SQLDBA=sqldba<br><wbr><wbr><wbr> VERSION=`$ORACLE_HOME/bin/sqldba command=exit | awk '<br><wbr><wbr><wbr><wbr><wbr> /SQL*DBA: (Release|Version)/ {split($3, V, ".") ;<br><wbr><wbr><wbr><wbr><wbr> print V[1]}'`<br><wbr><wbr><wbr> case $VERSION in<br><wbr><wbr><wbr><wbr><wbr> "6") ;;<br><wbr><wbr><wbr><wbr><wbr> *) VERSION="internal" ;;<br><wbr><wbr><wbr> esac<br><wbr> else<br><wbr><wbr><wbr> if [ -f $ORACLE_HOME/bin/svrmgrl ] ; then<br><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics