Файл .bashrc или .profile должен содержать следующие строки:
##################################################
# Setup Oracle standard env
##################################################
export ORACLE_SID=SID
export ORACLE_BASE=/u01/app/oracle
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES
##################################################
# Setup Oracle extended env
##################################################
#export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH
umask 022
unset TMOUT
if [ `uname` = "Linux" ]; then
unset LS_COLORS
fi
if [ `uname` = "AIX" ]; then
export AIXTHREAD_SCOPE=S
fi
if [ `uname` = "SunOS" ]; then
export AWT_TOOLKIT=XToolkit
# Preventing Installation Errors Caused by Terminal Output Commands
if [ -t 0 ]; then
stty intr ^C
fi
fi
где SID – указать идентификатор экземпляра БД
Для корректной установки переменных окружений из профайла необходимо следить
за заполнением информации в файле /etc/oratab, где регистрируется информация об используемых экземплярах баз данных.
oracle@omega:~$ more /etc/oratab
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
+ASM:/u01/app/grid/product/11.2.0.4:N
TESTDB:/u01/app/oracle/product/11.2.0.4:N # line added by Agent
oracle@omega:~$
В .bash_profile можно поместить следующие строки:
oracle@omega:~$ cat .bash_profile
# .bash_profile
# Source global definitions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
if [ "$BASH" = "" ]; then
echo Hello Bourne or K shell ....
PS1=$LOGNAME@`uname -n`"# "
else
echo Hello Bash ...
PS1="\u@\h:\w$ "
fi
А все остальное поместить в .bashrc :
oracle@omega:~$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
##################################################
# Setup Oracle standard env
##################################################
export ORACLE_SID=TESTDB
export ORACLE_BASE=/u01/app/oracle
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES
##################################################
# Setup Oracle extended env
##################################################
#export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH
umask 022
unset TMOUT
if [ `uname` = "Linux" ]; then
unset LS_COLORS
fi
oracle@omega:~$
Посмотрим что содержится в файле /usr/local/bin/oraenv :
oracle@omega:~$ more /usr/local/bin/oraenv
#!/bin/sh
#
# $Header: buildtools/scripts/oraenv.sh /linux32/8 2010/03/25 04:17:55 ashrives Exp $ oraenv.sh.pp Copyr (c) 1991 Oracle
#
# Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
#
# This routine is used to condition a Bourne shell user's environment
# for access to an ORACLE database. It should be installed in
# the system local bin directory.
#
# The user will be prompted for the database SID, unless the variable
# ORAENV_ASK is set to NO, in which case the current value of ORACLE_SID
# is used.
# An asterisk '*' can be used to refer to the NULL SID.
#
# 'dbhome' is called to locate ORACLE_HOME for the SID. If
# ORACLE_HOME cannot be located, the user will be prompted for it also.
# The following environment variables are set:
#
# ORACLE_SID Oracle system identifier
# ORACLE_HOME Top level directory of the Oracle system hierarchy
# PATH Old ORACLE_HOME/bin removed, new one added
# ORACLE_BASE Top level directory for storing data files and
# diagnostic information.
#
# usage: . oraenv
#
# NOTE: Due to constraints of the shell in regard to environment
# ----- variables, the command MUST be prefaced with ".". If it
# is not, then no permanent change in the user's environment
# can take place.
#
#####################################
#
# process aruments
#
SILENT='';
for arg in $@
do
if [ "$arg" = "-s" ]; then
SILENT='true'
fi
done
case ${ORACLE_TRACE:-""} in
T) set -x ;;
esac
#
# Determine how to suppress newline with echo command.
#
N=
C=
if echo "\c" | grep c >/dev/null 2>&1; then
N='-n'
else
C='\c'
fi
#
# Set minimum environment variables
#
# ensure that OLDHOME is non-null
if [ ${ORACLE_HOME:-0} = 0 ]; then
OLDHOME=$PATH
else
OLDHOME=$ORACLE_HOME
fi
case ${ORAENV_ASK:-""} in #ORAENV_ASK suppresses prompt when set
NO) NEWSID="$ORACLE_SID" ;;
*) case "$ORACLE_SID" in
"") ORASID=$LOGNAME ;;
*) ORASID=$ORACLE_SID ;;
esac
echo $N "ORACLE_SID = [$ORASID] ? $C"
read NEWSID
case "$NEWSID" in
"") ORACLE_SID="$ORASID" ;;
*) ORACLE_SID="$NEWSID" ;;
esac ;;
esac
export ORACLE_SID
ORAHOME=`dbhome "$ORACLE_SID"`
case $? in
0) ORACLE_HOME=$ORAHOME ;;
*) echo $N "ORACLE_HOME = [$ORAHOME] ? $C"
read NEWHOME
case "$NEWHOME" in
"") ORACLE_HOME=$ORAHOME ;;
*) ORACLE_HOME=$NEWHOME ;;
esac ;;
esac
export ORACLE_HOME
#
# Reset LD_LIBRARY_PATH
#
case ${LD_LIBRARY_PATH:-""} in
*$OLDHOME/lib*) LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | \
sed "s;$OLDHOME/lib;$ORACLE_HOME/lib;g"` ;;
*$ORACLE_HOME/lib*) ;;
"") LD_LIBRARY_PATH=$ORACLE_HOME/lib ;;
*) LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ;;
esac
export LD_LIBRARY_PATH
#
# Put new ORACLE_HOME in path and remove old one
#
case "$OLDHOME" in
"") OLDHOME=$PATH ;; #This makes it so that null OLDHOME can't match
esac #anything in next case statement
case "$PATH" in
*$OLDHOME/bin*) PATH=`echo $PATH | \
sed "s;$OLDHOME/bin;$ORACLE_HOME/bin;g"` ;;
*$ORACLE_HOME/bin*) ;;
*:) PATH=${PATH}$ORACLE_HOME/bin: ;;
"") PATH=$ORACLE_HOME/bin ;;
*) PATH=$PATH:$ORACLE_HOME/bin ;;
esac
export PATH
# Locate "osh" and exec it if found
ULIMIT=`LANG=C ulimit 2>/dev/null`
if [ $? = 0 -a "$ULIMIT" != "unlimited" ] ; then
if [ "$ULIMIT" -lt 2113674 ] ; then
if [ -f $ORACLE_HOME/bin/osh ] ; then
exec $ORACLE_HOME/bin/osh
else
for D in `echo $PATH | tr : " "`
do
if [ -f $D/osh ] ; then
exec $D/osh
fi
done
fi
fi
fi
# Set the value of ORACLE_BASE in the environment.
#
# Use the orabase executable from the corresponding ORACLE_HOME, since the ORACLE_BASE of different
# ORACLE_HOMEs can be different. The return value of orabase will be determined based on the value
# of ORACLE_BASE from oraclehomeproperties.xml as set in the ORACLE_HOME inventory.
#
# If orabase can not determine a value then oraenv returns with ORACLE_BASE unset.
#
# The existing value of ORACLE_BASE is only used to inform the user if the script has changed
# the value of ORACLE_BASE.
ORABASE_EXEC=$ORACLE_HOME/bin/orabase
if [ ${ORACLE_BASE:-"x"} != "x" ]; then
OLD_ORACLE_BASE=$ORACLE_BASE
unset ORACLE_BASE
export ORACLE_BASE
else
OLD_ORACLE_BASE=""
fi
if [ -w $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml ]; then
if [ -f $ORABASE_EXEC ]; then
if [ -x $ORABASE_EXEC ]; then
ORACLE_BASE=`$ORABASE_EXEC`
# did we have a previous value for ORACLE_BASE
if [ ${OLD_ORACLE_BASE:-"x"} != "x" ]; then
if [ $OLD_ORACLE_BASE != $ORACLE_BASE ]; then
if [ "$SILENT" != "true" ]; then
echo "The Oracle base has been changed from $OLD_ORACLE_BASE to $ORACLE_BASE"
fi
else
if [ "$SILENT" != "true" ]; then
echo "The Oracle base remains unchanged with value $OLD_ORACLE_BASE"
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "The Oracle base has been set to $ORACLE_BASE"
fi
fi
export ORACLE_BASE
else
if [ "$SILENT" != "true" ]; then
echo "The $ORACLE_HOME/bin/orabase binary does not have execute privilege"
echo "for the current user, $USER. Rerun the script after changing"
echo "the permission of the mentioned executable."
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "The $ORACLE_HOME/bin/orabase binary does not exist"
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "ORACLE_BASE environment variable is not being set since this"
echo "information is not available for the current user ID $USER."
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
#
# Install any "custom" code here
#
oracle@omega:~$
А файл /u01/app/oracle/product/11.2.0.4/bin/dbhome содержит :
oracle@omega:~$ more /u01/app/oracle/product/11.2.0.4/bin/dbhome
#
# $Header: dbhome.sh 24-may-2007.12:10:51 vkolla Exp $ dbhome.sh.pp Copyr (c) 1991 Oracle
#
###################################
#
# usage: ORACLE_HOME=`dbhome [SID]`
# NOTE: A NULL SID is specified with "" on the command line
#
# The only sane way to use this script is with SID specified on the
# command line or to have ORACLE_SID set for the database you are looking
# for. The return code will be 1 if dbhome can't find ANY value, 2 if
# it finds a questionable value, 0 if it finds a good one (ie. out of
# oratab).
#
# If ORACLE_SID is set or provided on the command line the script
# will write to the standard output the first of the following that
# it finds:
# 1. The value of the 2nd field in oratab where the
# value of the 1st field equals $ORACLE_SID.
# 2. The home directory for the user 'oracle' in /etc/passwd
# or in the yellow pages password entries.
#
# If ORACLE_SID is not set and not provided on the command line the
# script will write to the standard output the first of the following
# that it finds:
# 1. The current value of ORACLE_HOME if not null.
# 2. The home directory for the user 'oracle' in /etc/passwd
# or in the yellow pages password entries.
#
# This script currently uses no hard-coded defaults for ORACLE_SID or
# ORACLE_HOME.
#
#####################################
case "$ORACLE_TRACE" in
T) set -x ;;
esac
trap '' 1
RET=0
ORAHOME=""
ORASID=${ORACLE_SID-NOTSET}
ORASID=${1-$ORASID}
ORATAB=/etc/oratab
PASSWD=/etc/passwd
PASSWD_MAP=passwd.byname
case "$ORASID" in
NOTSET) # ORACLE_SID not passed in and not in environment
RET=2
ORAHOME="$ORACLE_HOME" ;;
*) # ORACLE_SID was set or provided on the command line
if test -f $ORATAB ; then
# Try for a match on ORASID in oratab
# NULL SID is * in oratab
case "$ORASID" in
"") ORASID='\*' ;;
esac
ORAHOME=`awk -F: '{if ($1 == "'$ORASID'") {print $2; exit}}' \
$ORATAB 2>/dev/null`
fi ;;
esac
case "$ORAHOME" in
"") # Not found in oratab or ORACLE_HOME not set;
# try /etc/passwd & yp for "oracle"
RET=2
ORAHOME=`awk -F: '/^oracle:/ {print $6; exit}' $PASSWD`
case "$ORAHOME" in
"") ORAHOME=`(ypmatch oracle $PASSWD_MAP) 2>/dev/null | \
awk -F: '/^oracle:/ {print $6; exit}'`
case "$ORAHOME" in
"") echo "Cannot locate ORACLE_HOME." 1>&2
exit 1 ;;
esac ;;
esac ;;
esac
echo $ORAHOME
exit $RET
oracle@omega:~$
##################################################
# Setup Oracle standard env
##################################################
export ORACLE_SID=SID
export ORACLE_BASE=/u01/app/oracle
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES
##################################################
# Setup Oracle extended env
##################################################
#export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH
umask 022
unset TMOUT
if [ `uname` = "Linux" ]; then
unset LS_COLORS
fi
if [ `uname` = "AIX" ]; then
export AIXTHREAD_SCOPE=S
fi
if [ `uname` = "SunOS" ]; then
export AWT_TOOLKIT=XToolkit
# Preventing Installation Errors Caused by Terminal Output Commands
if [ -t 0 ]; then
stty intr ^C
fi
fi
где SID – указать идентификатор экземпляра БД
Для корректной установки переменных окружений из профайла необходимо следить
за заполнением информации в файле /etc/oratab, где регистрируется информация об используемых экземплярах баз данных.
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
+ASM:/u01/app/grid/product/11.2.0.4:N
TESTDB:/u01/app/oracle/product/11.2.0.4:N # line added by Agent
oracle@omega:~$
В .bash_profile можно поместить следующие строки:
oracle@omega:~$ cat .bash_profile
# .bash_profile
# Source global definitions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
if [ "$BASH" = "" ]; then
echo Hello Bourne or K shell ....
PS1=$LOGNAME@`uname -n`"# "
else
echo Hello Bash ...
PS1="\u@\h:\w$ "
fi
А все остальное поместить в .bashrc :
oracle@omega:~$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
##################################################
# Setup Oracle standard env
##################################################
export ORACLE_SID=TESTDB
export ORACLE_BASE=/u01/app/oracle
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES
##################################################
# Setup Oracle extended env
##################################################
#export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH
umask 022
unset TMOUT
if [ `uname` = "Linux" ]; then
unset LS_COLORS
fi
oracle@omega:~$
Посмотрим что содержится в файле /usr/local/bin/oraenv :
oracle@omega:~$ more /usr/local/bin/oraenv
#!/bin/sh
#
# $Header: buildtools/scripts/oraenv.sh /linux32/8 2010/03/25 04:17:55 ashrives Exp $ oraenv.sh.pp Copyr (c) 1991 Oracle
#
# Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
#
# This routine is used to condition a Bourne shell user's environment
# for access to an ORACLE database. It should be installed in
# the system local bin directory.
#
# The user will be prompted for the database SID, unless the variable
# ORAENV_ASK is set to NO, in which case the current value of ORACLE_SID
# is used.
# An asterisk '*' can be used to refer to the NULL SID.
#
# 'dbhome' is called to locate ORACLE_HOME for the SID. If
# ORACLE_HOME cannot be located, the user will be prompted for it also.
# The following environment variables are set:
#
# ORACLE_SID Oracle system identifier
# ORACLE_HOME Top level directory of the Oracle system hierarchy
# PATH Old ORACLE_HOME/bin removed, new one added
# ORACLE_BASE Top level directory for storing data files and
# diagnostic information.
#
# usage: . oraenv
#
# NOTE: Due to constraints of the shell in regard to environment
# ----- variables, the command MUST be prefaced with ".". If it
# is not, then no permanent change in the user's environment
# can take place.
#
#####################################
#
# process aruments
#
SILENT='';
for arg in $@
do
if [ "$arg" = "-s" ]; then
SILENT='true'
fi
done
case ${ORACLE_TRACE:-""} in
T) set -x ;;
esac
#
# Determine how to suppress newline with echo command.
#
N=
C=
if echo "\c" | grep c >/dev/null 2>&1; then
N='-n'
else
C='\c'
fi
#
# Set minimum environment variables
#
# ensure that OLDHOME is non-null
if [ ${ORACLE_HOME:-0} = 0 ]; then
OLDHOME=$PATH
else
OLDHOME=$ORACLE_HOME
fi
case ${ORAENV_ASK:-""} in #ORAENV_ASK suppresses prompt when set
NO) NEWSID="$ORACLE_SID" ;;
*) case "$ORACLE_SID" in
"") ORASID=$LOGNAME ;;
*) ORASID=$ORACLE_SID ;;
esac
echo $N "ORACLE_SID = [$ORASID] ? $C"
read NEWSID
case "$NEWSID" in
"") ORACLE_SID="$ORASID" ;;
*) ORACLE_SID="$NEWSID" ;;
esac ;;
esac
export ORACLE_SID
ORAHOME=`dbhome "$ORACLE_SID"`
case $? in
0) ORACLE_HOME=$ORAHOME ;;
*) echo $N "ORACLE_HOME = [$ORAHOME] ? $C"
read NEWHOME
case "$NEWHOME" in
"") ORACLE_HOME=$ORAHOME ;;
*) ORACLE_HOME=$NEWHOME ;;
esac ;;
esac
export ORACLE_HOME
#
# Reset LD_LIBRARY_PATH
#
case ${LD_LIBRARY_PATH:-""} in
*$OLDHOME/lib*) LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | \
sed "s;$OLDHOME/lib;$ORACLE_HOME/lib;g"` ;;
*$ORACLE_HOME/lib*) ;;
"") LD_LIBRARY_PATH=$ORACLE_HOME/lib ;;
*) LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ;;
esac
export LD_LIBRARY_PATH
#
# Put new ORACLE_HOME in path and remove old one
#
case "$OLDHOME" in
"") OLDHOME=$PATH ;; #This makes it so that null OLDHOME can't match
esac #anything in next case statement
case "$PATH" in
*$OLDHOME/bin*) PATH=`echo $PATH | \
sed "s;$OLDHOME/bin;$ORACLE_HOME/bin;g"` ;;
*$ORACLE_HOME/bin*) ;;
*:) PATH=${PATH}$ORACLE_HOME/bin: ;;
"") PATH=$ORACLE_HOME/bin ;;
*) PATH=$PATH:$ORACLE_HOME/bin ;;
esac
export PATH
# Locate "osh" and exec it if found
ULIMIT=`LANG=C ulimit 2>/dev/null`
if [ $? = 0 -a "$ULIMIT" != "unlimited" ] ; then
if [ "$ULIMIT" -lt 2113674 ] ; then
if [ -f $ORACLE_HOME/bin/osh ] ; then
exec $ORACLE_HOME/bin/osh
else
for D in `echo $PATH | tr : " "`
do
if [ -f $D/osh ] ; then
exec $D/osh
fi
done
fi
fi
fi
# Set the value of ORACLE_BASE in the environment.
#
# Use the orabase executable from the corresponding ORACLE_HOME, since the ORACLE_BASE of different
# ORACLE_HOMEs can be different. The return value of orabase will be determined based on the value
# of ORACLE_BASE from oraclehomeproperties.xml as set in the ORACLE_HOME inventory.
#
# If orabase can not determine a value then oraenv returns with ORACLE_BASE unset.
#
# The existing value of ORACLE_BASE is only used to inform the user if the script has changed
# the value of ORACLE_BASE.
ORABASE_EXEC=$ORACLE_HOME/bin/orabase
if [ ${ORACLE_BASE:-"x"} != "x" ]; then
OLD_ORACLE_BASE=$ORACLE_BASE
unset ORACLE_BASE
export ORACLE_BASE
else
OLD_ORACLE_BASE=""
fi
if [ -w $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml ]; then
if [ -f $ORABASE_EXEC ]; then
if [ -x $ORABASE_EXEC ]; then
ORACLE_BASE=`$ORABASE_EXEC`
# did we have a previous value for ORACLE_BASE
if [ ${OLD_ORACLE_BASE:-"x"} != "x" ]; then
if [ $OLD_ORACLE_BASE != $ORACLE_BASE ]; then
if [ "$SILENT" != "true" ]; then
echo "The Oracle base has been changed from $OLD_ORACLE_BASE to $ORACLE_BASE"
fi
else
if [ "$SILENT" != "true" ]; then
echo "The Oracle base remains unchanged with value $OLD_ORACLE_BASE"
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "The Oracle base has been set to $ORACLE_BASE"
fi
fi
export ORACLE_BASE
else
if [ "$SILENT" != "true" ]; then
echo "The $ORACLE_HOME/bin/orabase binary does not have execute privilege"
echo "for the current user, $USER. Rerun the script after changing"
echo "the permission of the mentioned executable."
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "The $ORACLE_HOME/bin/orabase binary does not exist"
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
else
if [ "$SILENT" != "true" ]; then
echo "ORACLE_BASE environment variable is not being set since this"
echo "information is not available for the current user ID $USER."
echo "You can set ORACLE_BASE manually if it is required."
fi
fi
#
# Install any "custom" code here
#
oracle@omega:~$
А файл /u01/app/oracle/product/11.2.0.4/bin/dbhome содержит :
oracle@omega:~$ more /u01/app/oracle/product/11.2.0.4/bin/dbhome
#
# $Header: dbhome.sh 24-may-2007.12:10:51 vkolla Exp $ dbhome.sh.pp Copyr (c) 1991 Oracle
#
###################################
#
# usage: ORACLE_HOME=`dbhome [SID]`
# NOTE: A NULL SID is specified with "" on the command line
#
# The only sane way to use this script is with SID specified on the
# command line or to have ORACLE_SID set for the database you are looking
# for. The return code will be 1 if dbhome can't find ANY value, 2 if
# it finds a questionable value, 0 if it finds a good one (ie. out of
# oratab).
#
# If ORACLE_SID is set or provided on the command line the script
# will write to the standard output the first of the following that
# it finds:
# 1. The value of the 2nd field in oratab where the
# value of the 1st field equals $ORACLE_SID.
# 2. The home directory for the user 'oracle' in /etc/passwd
# or in the yellow pages password entries.
#
# If ORACLE_SID is not set and not provided on the command line the
# script will write to the standard output the first of the following
# that it finds:
# 1. The current value of ORACLE_HOME if not null.
# 2. The home directory for the user 'oracle' in /etc/passwd
# or in the yellow pages password entries.
#
# This script currently uses no hard-coded defaults for ORACLE_SID or
# ORACLE_HOME.
#
#####################################
case "$ORACLE_TRACE" in
T) set -x ;;
esac
trap '' 1
RET=0
ORAHOME=""
ORASID=${ORACLE_SID-NOTSET}
ORASID=${1-$ORASID}
ORATAB=/etc/oratab
PASSWD=/etc/passwd
PASSWD_MAP=passwd.byname
case "$ORASID" in
NOTSET) # ORACLE_SID not passed in and not in environment
RET=2
ORAHOME="$ORACLE_HOME" ;;
*) # ORACLE_SID was set or provided on the command line
if test -f $ORATAB ; then
# Try for a match on ORASID in oratab
# NULL SID is * in oratab
case "$ORASID" in
"") ORASID='\*' ;;
esac
ORAHOME=`awk -F: '{if ($1 == "'$ORASID'") {print $2; exit}}' \
$ORATAB 2>/dev/null`
fi ;;
esac
case "$ORAHOME" in
"") # Not found in oratab or ORACLE_HOME not set;
# try /etc/passwd & yp for "oracle"
RET=2
ORAHOME=`awk -F: '/^oracle:/ {print $6; exit}' $PASSWD`
case "$ORAHOME" in
"") ORAHOME=`(ypmatch oracle $PASSWD_MAP) 2>/dev/null | \
awk -F: '/^oracle:/ {print $6; exit}'`
case "$ORAHOME" in
"") echo "Cannot locate ORACLE_HOME." 1>&2
exit 1 ;;
esac ;;
esac ;;
esac
echo $ORAHOME
exit $RET
oracle@omega:~$
Комментариев нет:
Отправить комментарий