grid infrastructure 提示“[INS-40404] The installer has detected a configured instance of oracle grid infrastructure software on the server!
今天是2013-12-03,描述一下出现这个错误的过程,我没按照正常的方式删掉 grid infrastructure,而是直接删掉了安装目录,但是并不知道在安装grid infrastructure的时候会做什么隐含的操作,因此在我重新安装的时候就出现了如下所示的错误。
这个时候,我尝试了多种办法,结果还是不行(其中包括再次按照正常卸载步骤去操作)。事情往往是这样的,我们换一个思维角度往往就会有一个新的解决办法。既然在重新安装的时候出现这个问题,那么肯定可以从安装脚本内容去分析是到了那一步才会提示这个错误:
#!/bin/sh
# The environment variable $SRCHOME cannot be set during the installation
unset SRCHOME
AWK=/bin/awk
SED=/bin/sed
UNAME=/bin/uname
GETCONF=/usr/bin/getconf
BUNDLE=crs
if [ `$UNAME` = "AIX" ]; then
OSLEVEL=/bin/oslevel
UNAME=/bin/uname
CUT=/bin/cut
if [ "hello$IGNOREOSLEVEL" = "hello" ]; then
MAIN_VERSION=`$OSLEVEL -r | $CUT -d"-" -f1`;
MinorVersion1=`$OSLEVEL -r | $CUT -d"-" -f2`;
if [ $MAIN_VERSION -lt "5300" ]; then
echo "\nrunInstaller needs minimum oslevel : "5300-05-06"\n";
exit 0;
fi
if [ $MAIN_VERSION -eq "5300" ]; then
if [ MinorVersion1 -lt "05" ]; then
echo "\nrunInstaller needs minimum oslevel : "5300-05-06"\n";
exit 0;
else
if [ $MinorVersion1 -eq "05" ]; then
MinorVersion2=`$OSLEVEL -s | $CUT -d"-" -f3`;
if [ $MinorVersion2 -lt "06" ]; then
echo "\nrunInstaller needs minimum oslevel : "5300-05-06"\n";
exit 0;
fi
fi
fi
fi
fi
fi
if [ `$UNAME` = "SunOS" ]; then
OCR_LOC=/var/opt/oracle/ocr.loc
else
OCR_LOC=/etc/oracle/ocr.loc
fi
if [ `$UNAME` = "Linux" ]; then
if [ -e $GETCONF ]; then
value=`$GETCONF LONG_BIT`
if [ $value != 64 ]; then
echo "\"You are attempting to install 64-bit Oracle on a 32-bit operating system. This is not supported and will not work.\"";
exit 126; #corresponding to the exit code of oui
fi
fi
fi
LOCALONLY=local_only
LOCAL=TRUE
SILENT=FALSE
CMDDIR=`dirname $0`
if [ "$CMDDIR" = "." ]; then
CMDDIR=`pwd`;
fi
# Replace relative path with fully qualified path.
if [ ! "`echo $CMDDIR|grep '^/'`" ]; then
CMDDIR=`pwd`/$CMDDIR;
fi
if [ x${PATH} != x ]; then
PATH=/usr/bin:/usr/ccs/bin:$PATH:$CMDDIR/install
export PATH
else
PATH=/usr/bin:/usr/ccs/bin:$CMDDIR/install
export PATH
fi
# Determine whether there is an existing CRS or not.
# Local is value of local_only in ocr.loc.
# False means there is an existing CRS installation on the system.
if [ -r $OCR_LOC ]; then
LOCAL=`$AWK -F= /$LOCALONLY/'{print $2}' $OCR_LOC |\
$SED 'y/aeflrstu/AEFLRSTU/'`
fi
case "$BUNDLE" in
db)
# One-click: only if there is no cmd line argument and it's not on CRS node
if [ $# -gt 0 -o "$LOCAL" = "FALSE" -o \
! -r $CMDDIR/install/oneclick.properties ]; then
$CMDDIR/install/.oui $*
else
$CMDDIR/install/.oui -oneclick
fi
;;
client)
$CMDDIR/install/.oui $* CLUSTER_NODES={}
;;
crs)
$CMDDIR/install/.oui $* -formCluster
;;
dv)
$CMDDIR/install/.oui $* -oneclick
;;
dbbundle)
for arg in "$@"
do
arg=`echo $arg | $SED 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
if [ "$arg" = "-silent" ]; then
SILENT=TRUE
break
fi
done
if [ "$SILENT" = "TRUE" ]; then
$CMDDIR/install/.oui $*
else
$CMDDIR/install/.oui $* -oneclick -dbbundle
fi
;;
*)
$CMDDIR/install/.oui $*
;;
esac
上边为安装脚本,可以看到正是出现了上边标红部分才验证不过去。
至此可以继续进行安装。