AIX系统学习之-CRS安装后校验
系统环境:
操作系统:AIX 5.3.8
Oracle: Oracle 10gR2
案例分析:
在构建RAC时,安装完CRS需要做安装后的校验,在执行校验工具cluvfy时出现以下错误:
[root@aix230:/u01/soft/Disk1/cluvfy]#crs_stat -t
1
2
3
4
5
6
7
8
|
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
1
2
3
4
5
6
7
|
drwxr-xr-x
7
oracle dba
512
Oct
16
18
:
42
cluvfy
drwxr-xr-x
4
oracle dba
512
Oct
16
13
:
35
install
drwxr-xr-x
2
oracle dba
512
Oct
16
13
:
35
response
drwxr-xr-x
3
oracle dba
512
Oct
16
13
:
35
rootpre
-rwxr-xr-x
1
oracle dba
2602
Aug
20
2005
runInstaller
drwxr-xr-x
9
oracle dba
3072
Oct
16
13
:
35
stage
drwxr-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
查看目录权限:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@aix230:/u01/soft/Disk1/cluvfy]#ls -ld /u01
drwxr-sr-x
6
oracle dba
512
Oct
16
13
:
43
/u01
[root@aix230:/u01/soft/Disk1/cluvfy]#ls -l
total
118384
drwxrwxr-x
3
oracle dba
2048
Oct
16
18
:
42
bin
drwxr-xr-x
5
root system
512
Jul
16
2005
cv
-rwxr-xr-x
1
oracle dba
21378978
Aug
20
2005
cvupack.zip
drwxrwxr-x
2
root system
512
Aug
16
2005
jlib
-rwxrwxrwx
1
oracle dba
39203424
Aug
20
2005
jrepack.zip
drwxrwxr-x
10
oracle dba
3072
Oct
16
18
:
42
lib
drwxrwxr-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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/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.sh <cluvfy command options>
TMPDIR=/tmp
ECHO=/bin/echo
RM=/bin/rm
MKDIR=/bin/mkdir
case `/bin/uname`
in
Linux) 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
;
;;
esac
EXEC_DIR=`$DIRNAME $
0
`
CVUZIP_FILE=$EXEC_DIR/cvupack.zip
JREZIP_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 directory
if
[
"X$CV_HOME"
=
"X"
]
then
CV_HOME=$TMPDIR/$$
else
CV_HOME=$CV_HOME/$$
fi
$RM -rf $CV_HOME
$MKDIR -p $CV_HOME
export 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_JDKHOME
if
[
"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
fi
fi
# 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 directory
if
[
"X$CV_DESTLOC"
=
"X"
]
then
CV_DESTLOC=$TMPDIR
fi
export CV_DESTLOC
# Unpack the cluster verification software archive
on
its home
$UNZIP -o $CVUZIP_FILE -d $CV_HOME >/dev/
null
2
>&
1
EXEC_STATUS=$?
if
[ $EXEC_STATUS !=
"0"
];
then
$ECHO The unzip of archive file $CVUZIP_FILE failed
exit
1
fi
# 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
|
从以上内容:
1
2
3
|
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"下
1
2
3
4
|
[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
1
2
3
4
5
6
|
USAGE:
cluvfy [ -help ]
cluvfy stage { -list | -help }
cluvfy stage {-pre|-post} <stage-name> <stage-specific options> [-verbose]
cluvfy comp { -list | -help }
cluvfy comp <component-name> <component-specific options> [-verbose]
|
@至此,问题得以解决!!!