Start/stop Oracle&nbs…
2013-01-28 22:11
369 查看
原文地址:Start/stop Oracle database as a Linux Service作者:Hello顾问[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
echo "Oracle
startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orastart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orashut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac
[root@emsrv init.d]# cat
/u01/app/oracle/product/12.1.0/dbhome_1/bin/dbstart
#!/bin/sh
#
# $Id: dbstart.sh 22-may-2008.05:05:45 arogers Exp $
# Copyright (c) 1991, 2008, Oracle. All rights reserved.
#
###################################
#
# usage: dbstart $ORACLE_HOME
#
# This script is used to start ORACLE from /etc/rc(.local).
# It should ONLY be executed as part of the system boot
procedure.
#
# This script will start all databases listed in the oratab
file
# whose third field is a "Y". If the third field
is set to "Y" and
# there is no ORACLE_SID for an entry (the first field is a
*),
# then this script will ignore that entry.
#
# This script requires that ASM ORACLE_SID's start with a +,
and
# that non-ASM instance ORACLE_SID's do not start with a +.
#
# If ASM instances are to be started with this script, it
cannot
# be used inside an rc*.d directory, and should be invoked
from
# rc.local only. Otherwise, the CSS service may not be
available
# yet, and this script will block init from completing the
boot
# cycle.
#
# If you want dbstart to auto-start a single-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 the database's ORATAB entry
to use
# a third field of "W" and the ASM's ORATAB entry to use a third
field of "N".
# These values specify that dbstart auto-starts the database only
after
# the ASM instance is up and running.
#
# Note:
# Use ORACLE_TRACE=T for tracing this script.
#
# The progress log for each instance bringup plus Error and Warning
message[s]
# are logged in file $ORACLE_HOME/startup.log. The error messages
related to
# instance bringup are also logged to syslog (system log
module).
# The Listener log is located at
$ORACLE_HOME_LISTNER/listener.log
#
# On all UNIX platforms except SOLARIS
# ORATAB=/etc/oratab
#
# To configure, update ORATAB with Instances that need to be
started up
# Entries are
of the form:
#
$ORACLE_SID:$ORACLE_HOME::
# 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
# 2) Bring up all Database instances with 'Y' entry in status field
in
# oratab
entry
# 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
# 4) Bring up all Database instances with 'W' entry in status field
in
# oratab
entry
#
#####################################
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 Oracle Net Listener
ORACLE_HOME_LISTNER=$1
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to
auto-start Oracle Net 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
# a different 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" >> $LOG 2>&1
$ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1
&
VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL
for " | 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 Listener and Database
Instance.
# A version 10 listener is required for an Oracle Database 10g
database.
# Previous versions of the listener are not supported for use with
an Oracle
# Database 10g database. However, it is possible to use a version
10 listener
# with previous versions of the Oracle database.
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 Database
version $VER10INST"
$LOGMSG "Restart Oracle Net Listener using an alternate
ORACLE_HOME_LISTNER:"
$LOGMSG "lsnrctl start"
fi
fi
}
# Starts a Database Instance
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
#!/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
echo "Oracle
startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orastart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c ~${ORA_OWNER}/bin/orashut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac
[root@emsrv init.d]# cat
/u01/app/oracle/product/12.1.0/dbhome_1/bin/dbstart
#!/bin/sh
#
# $Id: dbstart.sh 22-may-2008.05:05:45 arogers Exp $
# Copyright (c) 1991, 2008, Oracle. All rights reserved.
#
###################################
#
# usage: dbstart $ORACLE_HOME
#
# This script is used to start ORACLE from /etc/rc(.local).
# It should ONLY be executed as part of the system boot
procedure.
#
# This script will start all databases listed in the oratab
file
# whose third field is a "Y". If the third field
is set to "Y" and
# there is no ORACLE_SID for an entry (the first field is a
*),
# then this script will ignore that entry.
#
# This script requires that ASM ORACLE_SID's start with a +,
and
# that non-ASM instance ORACLE_SID's do not start with a +.
#
# If ASM instances are to be started with this script, it
cannot
# be used inside an rc*.d directory, and should be invoked
from
# rc.local only. Otherwise, the CSS service may not be
available
# yet, and this script will block init from completing the
boot
# cycle.
#
# If you want dbstart to auto-start a single-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 the database's ORATAB entry
to use
# a third field of "W" and the ASM's ORATAB entry to use a third
field of "N".
# These values specify that dbstart auto-starts the database only
after
# the ASM instance is up and running.
#
# Note:
# Use ORACLE_TRACE=T for tracing this script.
#
# The progress log for each instance bringup plus Error and Warning
message[s]
# are logged in file $ORACLE_HOME/startup.log. The error messages
related to
# instance bringup are also logged to syslog (system log
module).
# The Listener log is located at
$ORACLE_HOME_LISTNER/listener.log
#
# On all UNIX platforms except SOLARIS
# ORATAB=/etc/oratab
#
# To configure, update ORATAB with Instances that need to be
started up
# Entries are
of the form:
#
$ORACLE_SID:$ORACLE_HOME::
# 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
# 2) Bring up all Database instances with 'Y' entry in status field
in
# oratab
entry
# 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
# 4) Bring up all Database instances with 'W' entry in status field
in
# oratab
entry
#
#####################################
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 Oracle Net Listener
ORACLE_HOME_LISTNER=$1
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to
auto-start Oracle Net 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
# a different 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" >> $LOG 2>&1
$ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1
&
VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL
for " | 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 Listener and Database
Instance.
# A version 10 listener is required for an Oracle Database 10g
database.
# Previous versions of the listener are not supported for use with
an Oracle
# Database 10g database. However, it is possible to use a version
10 listener
# with previous versions of the Oracle database.
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 Database
version $VER10INST"
$LOGMSG "Restart Oracle Net Listener using an alternate
ORACLE_HOME_LISTNER:"
$LOGMSG "lsnrctl start"
fi
fi
}
# Starts a Database Instance
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
相关文章推荐
- How to stop&start Oracle EBS Server(DB Server&Apps Server)
- How to stop&start Oracle EBS Server(DB Server&Apps Server)
- oracle中start with con…
- oracle update case&nbs…
- Oracle 语法之 OVER&nbs…
- oracle 分析及开窗函数
- oracle 浅见 之 循环语句
- 转 oracle客户端安装 11G
- oracle my objevt
- Oracle工具——DBVERIFY (其一)
- Oracle ASM 详解(其一)
- Oracle 11g Data Guard: How to start and stop Redo Apply
- oracle 同义词、序列、视图、索引
- Oracle 中的exception——(Raise)
- oracle level关键字
- oracle 创建表空间、用户
- oracle rpad()函数
- Oracle clusterware组成概述
- Linux 环境下Oracle 11g r2错误处…
- SAP MM ME51N&nbs…