This document addresses some of the frequently asked questions and common concerns regarding the Cluster Verification Utility (CVU), aka the cluvfy tool.
CVU is a utility that is distributed with Oracle Clusterware. It was developed to assist in the installation and configuration of Oracle Clusterware as well as RAC. CVU will verify all the important components that are needed at different stages in configuring a RAC environment. The wide domain of verification provided by CVU ranges from initial hardware setup through fully operational cluster for RAC deployment and covers all the intermediate stages of installation and configuration of various components. The command line tool is cluvfy. Cluvfy is a non-intrusive utility and will not adversely affect the system or operational stack.
CVU supports the notion of Stage verification. It identifies all the important stages in RAC deployment and provides each stage with its own entry and exit criteria. The entry criteria for a stage define a specific set of verification tasks to be performed before initiating that stage. This pre-check saves the user from entering into a stage unless its pre-requisite conditions are met. The exit criteria for a stage define another specific set of verification tasks to be performed after completion of the stage. The post-check ensures that the activities for that stage have been completed successfully. It identifies any stage specific problem before it propagates to subsequent stages; thus making it difficult to find its root cause. An example of a stage is "pre-check of database installation", which checks whether the system meets the criteria for RAC install.
CVU supports the notion of Component verification. The verifications in this category are not associated with any specific stage. The user can verify the correctness of a specific cluster component. A component can range from a basic one, like free disk space to a complex one like Oracle Clusterware Stack. The integrity check for the Oracle Clusterware stack will transparently span over verification of multiple sub-components associated with Oracle Clusterware stack. Bundling of several relevant tasks as a component is of great use to the user for verifying a specific cluster component.
A nodelist is a comma separated list of hostnames without domain. Cluvfy will run the requested verification on all nodes in the nodelist provided. Cluvfy will ignore any domain while processing the nodelist. If duplicate entities after removing the domain exist, cluvfy will eliminate the duplicate names while processing. Wherever supported, you can use '-n all' to check on all the cluster nodes. Check "Do I have to type the nodelist every time for the CVU commands? Is there any shortcut?" for more information on nodelist and shortcuts.
CVU supports a configuration file called cvu_config under CV_HOME/cv/admin folder. This file supports property-value style preferences in a persistent way. This might vary depending upon the platform. Here is a brief description of some of those properties:
CV_ORACLE_RELEASE:
This property can take a value of the Oracle release that should be assumed when -r option is not specified in the command line. The valid values that can be set are: 10.1, 10.2, 11.1, 11.2 or 12.1. If this property is not set then the default is 12gR2.
CV_NODE_ALL:
This property stores a comma separated list of nodes to be used for all the nodes in the cluster. This value will be used for "-n all" argument on the command line. For detail refer to "Do I have to type the nodelist every time for the CVU commands? Is there any shortcut?".
CV_RAW_CHECK_ENABLED:
If this property is set to TRUE, then CVU will perform scsi disk discovery and sharedness checks. For Linux platforms, CVU requires the cvuqdisk rpm installed on all nodes if this property is set. For detail refer to "What is 'cvuqdisk' rpm? Why should I install this rpm?".
CV_ASSUME_DISTID:
This property is used in cases where CVU can not detect or support a particular platform or a distribution. It is not recommend to change this property as this might render CVU non-functional.
CV_XCHK_FOR_SSH_ENABLED:
If this property is set to TRUE, CVU will also check whether X-Windows is configured with SSH for user equivalence. For detail, refer to "How do I check if SSH is configured properly on my cluster?".
ORACLE_SRVM_REMOTESHELL:
This property stores alternative remote shell command location.
ORACLE_SRVM_REMOTECOPY:
This property stores alternative remote copy command location.
CV_ASSUME_CL_VERSION:
By default, command line parser uses CRS active version for the display of command line syntax usage and syntax validation, use this property to pass a version other than CRS active version for command line syntax display and validation.
CV_TRACELOC:
Use this property to choose the location in which CVU generates the trace files, set it to the absolute path of the desired trace directory.
CV_DEFAULT_BROWSER_LOCATION
Use this property to specify the location of the browser to be used to display HTML report. By default, /usr/bin/mozilla is used.
CV_MAX_RETRIES_DHCP_DISCOVERY
Use this property to specify the maximum number of retries for discovering DHCP server
CV_TRACE_SIZE_MULTIPLIER
This property specifies the maximum CVU trace files size (in multiples of 100 MB). The default multiplier is 1.
At present, CVU's discovery is limited to the following components. CVU discovers available network interfaces if you do not specify any interface in its command line. For storage related verification, CVU discovers all the supported storage types if you do not specify a particular storage. CVU discovers CRS HOME if one is available. CVU also discovers the statically configured nodelist for the cluster if a 3rd-party vendor clusterware or Oracle Clusterware is available.
Yes. CVU complies to Oracle's NLS guidelines and supports locale.
Please refer to the "What are the known issues with this release?" section of ths document and the README file before filing a bug. If the issue is not covered in those documents, open a TAR through Oracle Support.
CVU is backward compatible. It supports all the Oracle releases starting from 10.1 to 12.2.
Here is how one can install CVU from a zip file(cvupack_<platform>.zip) downloaded from OTN:
To verify, run cluvfy from <CV Home>/bin directory (typically /home/username/mycvhome/bin/cluvfy). This should show the usage.
For Linux platforms, an optional rpm package 'cvuqdisk' is required on all the nodes. Please refer to How do I install 'cvuqdisk' package? for detail.
cvuqdisk is applicable on Linux platforms only.
CVU requires root privilege to gather information about the scsi disks during discovery. A small binary uses the setuid mechanism to query disk information as root. Note that this process is purely a read-only process with no adverse impact on the system. To make this secured, this binary is packaged in the cvuqdisk rpm and need root privilege to install on a machine.
When this package is installed on all the nodes, CVU performs discovery and shared storage accessibility checks for scsi disks. Otherwise, it complains about the missing package 'cvuqdisk'. You can disable the scsi device check feature by setting the CV_RAW_CHECK_ENABLED to FALSE in $CV_HOME/cv/admin/cvu_config file. CVU will not complain about the missing rpm if this variable is set to false.
Cluvfy has context sensitive help built into it. Cluvfy shows the most appropriate usage text based on the cluvfy command line arguments.
If you type 'cluvfy' on the command prompt, cluvfy displays the high level generic usage text, which talks about valid stage and component syntax.
If you type 'cluvfy comp -list', cluvfy will show valid components with brief description on each of them. If you type 'cluvfy comp -help', cluvfy will show detail syntax for each of the valid components. Similarly, 'cluvfy stage -list' and 'cluvfy stage -help' will list valid stages and their syntax respectively.
If you type an invalid command, cluvfy will show the appropriate usage for that particular command. For example, if you type 'cluvfy stage -pre dbinst', cluvfy will show the syntax for pre-check of dbinst stage.
You do not have to type the nodelist every time for the CVU commands. Typing the nodelist for a large cluster is painful and error prone. Here are few shortcuts.
To provide all the nodes of the cluster, type '-n all'. Cluvfy will attempt to get the nodelist in the following order:
Cluvfy supports a verbose mode. By default, cluvfy reports in non-verbose mode and just reports the summary of a test. To get detailed output of a check, use the flag '-verbose' in the command line. This will produce detail output of individual checks and where applicable will show per-node result in a tabular fashion.
Use component verifications commands like 'nodereach' or 'nodecon' for this purpose. For detailed syntax of these commands, type comp -help command on the command prompt.
If the 'comp nodecon' command is invoked without -networks, cluvfy will attempt to discover all the available interfaces and the corresponding IP address & subnet. Then cluvfy will try to verify the node connectivity per subnet. You can run this command in verbose mode to find out the mappings between the interfaces, IP addresses and subnets. Cluvfy will suggest interfaces for VIP and private interconnect if suitable interfaces are available.
You can check the connectivity among the nodes through specific interfaces by specifying the interface name(s) through -i argument.
Yes, you can use 'cluvfy comp ssa' command to check the sharedness of the storage.
Yes, CVU supports the functionality of fixing up several system parameters that do not meet the requirements. Wherever applicable, the argument '-fixup' can be specified in command line to perform fix up operations automatically on verification failure. The automatic execution of fixup operations needs privileges to be delegated to CVU. The method of delegation (sudo or root) can be specified using -method option. You will be prompted for a password but the password is used dynamically while the CVU commands run, rather than being stored on a storage device.
If you do not want to delegate privileges to CVU and prefer to do the fixups manually then you can use '-fixupnoexec' option. If this option is specified, on verification failure, the fixup data will be generated and the instruction for manual execution of the generated fixup scripts will be displayed. The mentioned fixup scripts will have to be executed on each relevant node under root privileges.
The cluvfy tool provides commands to check a particular sub-component of the Oracle Clusterware stack as well as the whole Oracle Clusterware stack. You can use the 'comp ocr' command to check the integrity of OCR. Similarly, you can use 'comp crs' and 'comp clumgr' commands to check integrity of Oracle Clusterware and clustermanager sub-components.
To check the entire Oracle Clusterware stack, run the stage command 'cluvfy stage -post crsinst'.
Use admprv component verification command. Refer to the usage text for detail instruction and type of supported operations. To check whether the privilege is sufficient for user equivalence, use '-o user_equiv' argument. You can force CVU to check user equivalence using SSH only by the '-sshonly' flag. Similarly, the '-o crs_inst' will verify whether the user has the correct permissions for installing Oracle Clusterware. The '-o db_inst' will check for permissions required for installing RAC and '-o db_config' will check for permissions required for creating a RAC database or modifying a RAC database configuration.
You can use CVU's admprv component verification command 'comp admprv -n <nodelist> -o user_equiv -sshonly -verbose' to verify this. To check whether X-Windows is configured to work with SSH for user equivalence as per Oracle's requirement, set the following property "CV_XCHK_FOR_SSH_ENABLED=TRUE" in the $CV_HOME/cv/admin/cvu_config file.
The component verification command 'comp sys' is meant for that. Use the '-p crs' option to check minimum requirements for Oracle Clusterware. Use the -r option for specifying the intended version of Oracle release. Similarly, you can check the minimum system requirements for RAC DB using '-p database option'. For this check also, use -r option for specifying the intended Oracle release.
You can use the peer comparison feature of cluvfy for this purpose. The command 'comp peer' will list the values of different nodes for several pre-selected properties. You can use the peer command with -refnode argument to compare those properties of other nodes against the reference node.
Peer comparison with the -refnode feature acts like a baseline feature. It compares the system properties of other nodes against the reference node. If the value does not match( not equal to reference node value ), then it flags that as a deviation from the reference node. If a group or user does not exist on reference node as well as on the other node, it will report this as 'matched' since there is no deviation from the reference node. Similarly, it will report as 'mismatched' for a node with higher total memory than the reference node for the above reason.
Yes. You can use the post-check command for cluster services setup(-post crsinst) to verify Oracle Clusterware status. A more appropriate test would be to use the pre-check command for database installation(-pre dbinst). This will check whether the current state of the system is suitable for RAC install.
You can run cluvfy at any time, even before Oracle Clusterware installation. In fact, cluvfy is designed to assist the user as soon as the hardware and OS is up. If you invoke a command which requires Oracle Clusterware or RAC on local node, cluvfy will report an error if those required products are not yet installed.
The tracing is turned on by default. Set the environmental variable SRVM_TRACE to false if you do not want tracing. For example, in bash "export SRVM_TRACE=false" or "export SRVM_TRACE=FALSE" will switch off tracing.
CVU log files can be found under $CV_HOME/cv/log directory. The log files are automatically rotated and the latest log file has the name cvutrace.log.0. It is a good idea to clean up unwanted log files or archive them to reclaim disk place.
If you want the trace files to be generated in a location other than $CV_HOME/cv/log then set the environment variable CV_TRACELOC to the desired location of your choice.
Cluvfy reports unknown when it can not conclude for sure if the check passed or failed.
Use ‘comp healthcheck’ command to check that the mandatory requirements and/or best practice recommendations are met for successful operation of Oracle Clusterware, ASM and the database(s) configured on the system. The results of validation can be displayed as text or as HTML (if feasible).
Use ‘comp baseline’ command to collect and compare baselines. At any instance of time, you can collect and save the baseline using –collect option. You have a choice of collecting details of system, clusterware, database and ASM selectively or all-inclusive. You can compare two baselines using –compare option.
Yes, CVU is supported for all current versions of Oracle Restart.