AIX系统学习之-CRS安装后校验
AIX系统学习之-CRS安装后校验
系统环境:
操作系统:AIX 5.3.8
Oracle: Oracle 10gR2
案例分析:
在构建RAC时,安装完CRS需要做安装后的校验,在执行校验工具cluvfy时出现以下错误:
[root@aix230:/u01/soft/Disk1/cluvfy]#crs_stat -t
Name Type Target State Host ------------------------------------------------------------ora.aix229.gsd application ONLINE ONLINE aix229 ora.aix229.ons application ONLINE ONLINE aix229 ora.aix229.vip application ONLINE ONLINE aix229 ora.aix230.gsd application ONLINE ONLINE aix230 ora.aix230.ons application ONLINE ONLINE aix230 ora.aix230.vip application ONLINE ONLINE aix230
[root@aix230:/u01/soft/Disk1]#ls -l
total 56
drwxr-xr-x 7 oracle dba 512 Oct 16 18:42 cluvfydrwxr-xr-x 4 oracle dba 512 Oct 16 13:35 installdrwxr-xr-x 2 oracle dba 512 Oct 16 13:35 responsedrwxr-xr-x 3 oracle dba 512 Oct 16 13:35 rootpre-rwxr-xr-x 1 oracle dba 2602 Aug 20 2005 runInstallerdrwxr-xr-x 9 oracle dba 3072 Oct 16 13:35 stagedrwxr-xr-x 2 oracle dba 512 Oct 16 13:35 upgrade
[root@aix230:/u01/soft/Disk1/cluvfy]#/u01/soft/Disk1/cluvfy/runcluvfy.sh -h
The unzip of archive file /u01/soft/Disk1/cluvfy/jrepack.zip failed
查看目录权限:
[root@aix230:/u01/soft/Disk1/cluvfy]#ls -ld /u01drwxr-sr-x 6 oracle dba 512 Oct 16 13:43 /u01[root@aix230:/u01/soft/Disk1/cluvfy]#ls -ltotal 118384drwxrwxr-x 3 oracle dba 2048 Oct 16 18:42 bindrwxr-xr-x 5 root system 512 Jul 16 2005 cv-rwxr-xr-x 1 oracle dba 21378978 Aug 20 2005 cvupack.zipdrwxrwxr-x 2 root system 512 Aug 16 2005 jlib-rwxrwxrwx 1 oracle dba 39203424 Aug 20 2005 jrepack.zipdrwxrwxr-x 10 oracle dba 3072 Oct 16 18:42 libdrwxrwxr-x 2 root system 512 Jul 19 2005 lib32-rwxr-xr-x 1 oracle dba 3107 Aug 20 2005 runcluvfy.sh
修改可执行脚本权限:
[root@aix230:/u01/soft/Disk1/cluvfy]#chmod 777 runcluvfy.sh
仍然失败,看来不是权限的问题:
[root@aix230:/u01/soft/Disk1/cluvfy]#./runcluvfy.sh
The unzip of archive file ./jrepack.zip failed
查看可执行脚本的内容,发现秘密
[root@aix230:/u01/soft/Disk1/cluvfy]#cat runcluvfy.sh
#!/bin/sh## This script sets up the environment for invocation of cluster verification # tool (cluvfy), unpacks the archive (cluvfy.zip) for the verification # framework software, executes the requested verification command, and cleans# up the space occupied by the unpacked verification software.# # Usage: cluvfy.shTMPDIR=/tmpECHO=/bin/echoRM=/bin/rmMKDIR=/bin/mkdircase `/bin/uname` inLinux) UNZIP=/usr/bin/unzip DIRNAME=/usr/bin/dirname ;;HP-UX) UNZIP=/usr/bin/unzip DIRNAME=/bin/dirname ;;SunOS) UNZIP=/usr/bin/unzip DIRNAME=/bin/dirname ;;AIX) DIRNAME=/bin/dirname UNZIP=/usr/bin/unzip if [ -f $UNZIP ] then UNZIP=/usr/bin/unzip else UNZIP=/usr/local/bin/unzip fi ;;OSF1) UNZIP=/usr/bin/unzip DIRNAME=/usr/bin/dirname ;;*) $ECHO "ERROR: Unknown Operating system" exit -1; ;;esacEXEC_DIR=`$DIRNAME $0`CVUZIP_FILE=$EXEC_DIR/cvupack.zipJREZIP_FILE=$EXEC_DIR/jrepack.zip# Setup CV_HOME environment variable for cluvfy # This variable points to the home for cluster verification software.# If not set by the caller of this script, it points (by default) # to temporary directoryif [ "X$CV_HOME" = "X" ]then CV_HOME=$TMPDIR/$$else CV_HOME=$CV_HOME/$$fi$RM -rf $CV_HOME$MKDIR -p $CV_HOMEexport CV_HOME# Setup CV_JDKHOME environment variable for cluvfy # This variable points to the java package required by cluster verification# framework # If this varible isn't set by the caller of this script, the jrepack.zip# archive is unpacked in $CV_HOME/jre directory and this directory is set in# CV_JDKHOMEif [ "X$CV_JDKHOME" = "X" ]then if [ ! -f $JREZIP_FILE ]; then $ECHO "\"$JREZIP_FILE\" does not exist." $ECHO "ERROR. Either CV_JDKHOME environment variable should be set" $ECHO " or $JREZIP_FILE should exist." exit 1 else $UNZIP -o $JREZIP_FILE -d $CV_HOME/jre >/dev/null 2>&1 EXEC_STATUS=$? if [ $EXEC_STATUS != "0" ]; then $ECHO The unzip of archive file $JREZIP_FILE failed exit 1 fi CV_JDKHOME=$CV_HOME/jre export CV_JDKHOME fifi# Setup CV_DESTLOC environment variable for cluvfy # This variable points to a directory on each (remote as well as local) node# that is writable. The cluster verifcation tool will copy the required # software bits (on need basis) to this directory.# If not set by the caller of this script, it points (by default) # to temporary directoryif [ "X$CV_DESTLOC" = "X" ]then CV_DESTLOC=$TMPDIRfiexport CV_DESTLOC# Unpack the cluster verification software archive on its home$UNZIP -o $CVUZIP_FILE -d $CV_HOME >/dev/null 2>&1EXEC_STATUS=$?if [ $EXEC_STATUS != "0" ]; then $ECHO The unzip of archive file $CVUZIP_FILE failed exit 1fi# Execute the requested cluster verification command${CV_HOME}/bin/cluvfy "$@"EXEC_STATUS=$?# Cleanup the home for cluster verification software$RM -rf $CV_HOME# Return the status of executed cluster verification command exit $EXEC_STATUS
从以上内容:
AIX) DIRNAME=/bin/dirname UNZIP=/usr/bin/unzip
可以看到,在执行脚本时需要执行"unzip",执行路径为"/usr/bin/unzip"
查看本机unzip可执行文件位置:
[root@aix230:/u01/soft/Disk1/cluvfy]#which unzip
/u01/crs_1/bin/unzip
竟然不在"/usr/bin"下
拷贝unzip到"/usr/bin"下
[root@aix230:/u01/soft/Disk1/cluvfy]#cp /u01/crs_1/bin/unzip /usr/bin[root@aix230:/u01/soft/Disk1/cluvfy]#which unzip/usr/bin/unzip
然后执行:
[root@aix230:/u01/soft/Disk1/cluvfy]#/u01/soft/Disk1/cluvfy/runcluvfy.sh -h
USAGE:cluvfy [ -help ]cluvfy stage { -list | -help }cluvfy stage {-pre|-post}[-verbose]cluvfy comp { -list | -help }cluvfy comp [-verbose]
@至此,问题得以解决!!!