如果安装过10g以后的RAC环境,应该对这个工具并不陌生。在安装Cluster和Database之前通常会执行runcluvfy.sh脚本来检查当前系统是否满足安装条件。
这篇介绍comp相关选项。
在安装RAC时,由于cluvfy工具还没有被安装,而runcluvfy.sh将cluvfy工具的功能在shell中实现,并和安装盘一起提供,使得用户在数据库和CLUSTER安装之前就可以利用这个工具的功能。
这个工具的主要作用就是验证系统是否满足安装的条件。
这个工具拥有众多的选项,因此不可能也没有必要详细的描述所有的选项,如果从大类上分,这个工具可以分成两个大类选项:comp用来验证组件的功能;stage用来验证部署功能。
可以通过comp –list来列出所有cluvfy工具支持验证的组件:
bash-2.03$ cluvfy comp -list
USAGE:
cluvfy comp <component-name> <component-specific options> [-verbose]
Valid components are:
nodereach : checks reachability between nodes
nodecon : checks node connectivity
ssa : checks shared storage accessibility
space : checks space availability
sys : checks minimum system requirements
clu : checks cluster integrity
clumgr : checks cluster manager integrity
ocr : checks OCR integrity
crs : checks CRS integrity
nodeapp : checks node applications existence
admprv : checks administrative privileges
peer : compares properties with peers
其中nodereach、nodecon和sys等组件都是安装Cluster环境必不可少的检查选项:
bash-2.03$ cluvfy comp nodereach -n racnode1,racnode2
Verifying node reachability
Checking node reachability...
Node reachability check passed from node "racnode2".
Verification of node reachability was successful.
其中-n选项中指定节点列表,在节点列表中的逗号前后都不能包括空格,否则会报错。
bash-2.03$ cluvfy comp nodereach -n racnode1,racnode2 -verbose
Verifying node reachability
Checking node reachability...
Check: Node reachability from node "racnode2"
Destination Node Reachable?
------------------------------------ ------------------------
racnode1 yes
racnode2 yes
Result: Node reachability check passed from node "racnode2".
Verification of node reachability was successful.
使用-verbose会得到更加详细的信息。
bash-2.03$ cluvfy comp nodecon -n racnode1,racnode2 -verbose
Verifying node connectivity
Checking node connectivity...
Interface information for node "racnode2"
Interface Name IP Address Subnet
------------------------------ ------------------------------ ----------------
ce0 172.25.198.223 172.25.0.0
ce0 172.25.198.225 172.25.198.0
ce1 10.0.0.2 10.0.0.0
Interface information for node "racnode1"
Interface Name IP Address Subnet
------------------------------ ------------------------------ ----------------
ce0 172.25.198.222 172.25.0.0
ce0 172.25.198.224 172.25.198.0
ce1 10.0.0.1 10.0.0.0
Check: Node connectivity of subnet "172.25.0.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
racnode2:ce0 racnode1:ce0 yes
Result: Node connectivity check passed for subnet "172.25.0.0" with node(s) racnode2,racnode1.
Check: Node connectivity of subnet "172.25.198.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
racnode2:ce0 racnode1:ce0 yes
Result: Node connectivity check passed for subnet "172.25.198.0" with node(s) racnode2,racnode1.
Check: Node connectivity of subnet "10.0.0.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
racnode2:ce1 racnode1:ce1 yes
Result: Node connectivity check passed for subnet "10.0.0.0" with node(s) racnode2,racnode1.
Suitable interfaces for the private interconnect on subnet "172.25.0.0":
racnode2 ce0:172.25.198.223
racnode1 ce0:172.25.198.222
Suitable interfaces for the private interconnect on subnet "172.25.198.0":
racnode2 ce0:172.25.198.225
racnode1 ce0:172.25.198.224
Suitable interfaces for the private interconnect on subnet "10.0.0.0":
racnode2 ce1:10.0.0.2
racnode1 ce1:10.0.0.1
ERROR:
Could not find a suitable set of interfaces for VIPs.
Result: Node connectivity check failed.
Verification of node connectivity was unsuccessful on all the nodes.
其中导致监测失败的原因是Oracle的bug,Oracle认为172.25开头的IP地址无法作为PUBLIC地址,这个在以前安装RAC的时候提到过很多次了。
bash-2.03$ cluvfy comp sys -n racnode1,racnode2 -p database -r 10gR2 -osdba dba
Verifying system requirement
Checking system requirements for 'database'...
Total memory check passed.
Free disk space check passed.
Swap space check passed.
System architecture check passed.
Operating system version check passed.
Operating system patch check failed for "112760-05".
Check failed on nodes:
racnode2,racnode1
Operating system patch check passed for "108993-45".
Operating system patch check failed for "112763-13".
Check failed on nodes:
racnode2,racnode1
Package existence check passed for "SUNWarc".
Package existence check passed for "SUNWbtool".
Package existence check passed for "SUNWhea".
Package existence check passed for "SUNWlibm".
Package existence check passed for "SUNWlibms".
Package existence check passed for "SUNWsprot".
Package existence check passed for "SUNWsprox".
Package existence check passed for "SUNWtoo".
Package existence check passed for "SUNWi1of".
Package existence check passed for "SUNWi1cs".
Package existence check passed for "SUNWi15cs".
Package existence check passed for "SUNWxwfnt".
Package existence check passed for "SUNWlibC".
Kernel parameter check failed for "noexec_user_stack".
Check failed on nodes:
racnode2,racnode1
Kernel parameter check passed for "SEMMNI".
Kernel parameter check passed for "SEMMNS".
Kernel parameter check passed for "SEMMSL".
Kernel parameter check passed for "SEMVMX".
Kernel parameter check passed for "SHMMAX".
Kernel parameter check passed for "SHMMIN".
Kernel parameter check passed for "SHMMNI".
Kernel parameter check passed for "SHMSEG".
Group existence check passed for "dba".
User existence check passed for "nobody".
System requirement failed for 'database'
Verification of system requirement was unsuccessful on all the nodes.
除了检查常规的安装检查组件外,还可以验证ocr、clu以及crs的完整性:
bash-2.03$ cluvfy comp clu -n racnode1,racnode2 -verbose
Verifying cluster integrity
Checking cluster integrity...
Node Name
------------------------------------
racnode1
racnode2
Cluster integrity check passed
Verification of cluster integrity was successful.
bash-2.03$ cluvfy comp ocr -n racnode1,racnode2 -verbose
Verifying OCR integrity
Checking OCR integrity...
Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations.
Uniqueness check for OCR device passed.
Checking the version of OCR...
OCR of correct Version "2" exists.
Checking data integrity of OCR...
Data integrity check for OCR passed.
OCR integrity check passed.
Verification of OCR integrity was successful.
bash-2.03$ cluvfy comp crs -n racnode1,racnode2 -verbose
Verifying CRS integrity
Checking CRS integrity...
Checking daemon liveness...
Check: Liveness for "CRS daemon"
Node Name Running
------------------------------------ ------------------------
racnode2 yes
racnode1 yes
Result: Liveness check passed for "CRS daemon".
Checking daemon liveness...
Check: Liveness for "CSS daemon"
Node Name Running
------------------------------------ ------------------------
racnode2 yes
racnode1 yes
Result: Liveness check passed for "CSS daemon".
Checking daemon liveness...
Check: Liveness for "EVM daemon"
Node Name Running
------------------------------------ ------------------------
racnode2 yes
racnode1 yes
Result: Liveness check passed for "EVM daemon".
Liveness of all the daemons
Node Name CRS daemon CSS daemon EVM daemon
------------ ------------------------ ------------------------ ----------
racnode2 yes yes yes
racnode1 yes yes yes
Checking CRS health...
Check: Health of CRS
Node Name CRS OK?
------------------------------------ ------------------------
racnode2 yes
racnode1 yes
Result: CRS health check passed.
CRS integrity check passed.
Verification of CRS integrity was successful.
bash-2.03$ cluvfy comp nodeapp -n racnode1,racnode2 -verbose
Verifying node application existence
Checking node application existence...
Checking existence of VIP node application
Node Name Required Status Comment
------------ ------------------------ ------------------------ ----------
racnode2 yes exists passed
racnode1 yes exists passed
Result: Check passed.
Checking existence of ONS node application
Node Name Required Status Comment
------------ ------------------------ ------------------------ ----------
racnode2 no exists passed
racnode1 no exists passed
Result: Check passed.
Checking existence of GSD node application
Node Name Required Status Comment
------------ ------------------------ ------------------------ ----------
racnode2 no exists passed
racnode1 no exists passed
Result: Check passed.
利用cluvfy不仅可以检查是否满足安装要求,还可以验证组件是否工作正常。
oracle视频教程请关注: