如果安装过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视频教程请关注: