This document addresses some of the frequently asked questions and common concerns regarding the Cluster Verification Utility (CVU), aka the cluvfy tool.

Open all Close all

    General concept

  • What is Cluster Verification Utility (CVU)? What are its objectives and features?

    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.

  • What is a stage?

    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.

  • What is a component?

    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.

  • What is nodelist?

    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.

  • What is a configuration file?

    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.

  • What about discovery? Does CVU discover installed components?

    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.

  • What about locale? Does CVU support other languages?

    Yes. CVU complies to Oracle's NLS  guidelines and supports locale.

  • How do I report a bug?

    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.

  • What version of Oracle Clusterware or RAC is supported by CVU?

    CVU is backward compatible. It supports all the Oracle releases starting from 10.1 to 12.2.

    Installation

  • What are the requirements for CVU?
    • An area with at least 644MB on Linux X86-64, 583MB Solaris SPARC64, 555MB on Solaris X64 and 970 MB on HPUX IA64 of free space for containing software bits on the invocation node.
    • A work directory with at least 9.5MB on all the nodes. CVU will attempt to copy the necessary bits as required to this location. Make sure, the location exists on all nodes and it has write permission for CVU user. This directory is set through the CV_DESTLOC environment variable. If this variable is not set, CVU will use the common temporary location such as  "/tmp" for Linux and "C:\Temp"  for Windows as the work dir.
    • An optional package 'cvuqdisk' is required on all the nodes for Linux distributions. This assists CVU in finding scsi disks and helps  CVU to perform storage checks on disks. Please refer to What is 'cvuqdisk' rpm? for detail.
  • How do I install CVU from OTN?

      Here is how one can install CVU from a zip file(cvupack_<platform>.zip) downloaded from OTN:

    1. Create a CV home( say /home/username/mycvhome ) directory. It should have at least 35M of free disk space.
    2. cd /home/username/mycvhome
    3. copy the cvupack_<platform>.zip file to /home/username/mycvhome
    4. unzip the file:
         
      > unzip cvupack<platform>.zip
    5. (Optional) Set the environmental variable CV_DESTLOC. This should point to a writable area on *all* nodes. When invoked, the tool will attempt to copy the necessary bits as required to this location. Make sure the location exists on all nodes and it has write permission for CVU user. It is strongly recommended that you should set this variable. If this variable has not been set, CVU will use "/tmp" as the default.
          > setenv CV_DESTLOC /tmp/cvu_temp

    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.

  • What is 'cvuqdisk' rpm? Why should I install this rpm?

    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.

  • How do I install 'cvuqdisk' package?
    Here are the steps to install cvuqdisk package.
    1. Become root user
    2. Copy the rpm ( cvuqdisk-1.0.7-1.rpm or the latest version ) to a local directory. You can find the rpm in <CV-HOME>/rpm directory where <CV-HOME> is the directory in which you have installed CVU from OTN.
    3. Set the environment variable to a group, who should own this binary. Typically it is the "dba" group.
      export CVUQDISK_GRP=dba
    4. Erase any existing package
      rpm -e cvuqdisk
    5. Install the rpm
      rpm -iv cvuqdisk-1.0.7-1.rpm
    6. Verify the package
      rpm -qa | grep cvuqdisk

    Usage

  • How do I know about cluvfy commands? The usage text of cluvfy does not show individual commands.

    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.

  • Do I have to type the nodelist every time for the CVU commands? Is there any shortcut?

    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:

    1. If a vendor clusterware is available, it will pick all the configured nodes from the vendor clusterware using lsnodes utility.
    2. If CRS is installed, it will pick all the configured nodes from Oracle clusterware using olsnodes utility.
    3. It will look for the CV_NODE_ALL property in the cvu_config file under $CV_HOME/cv/admin.
    4. If none of the above, it will look for the CV_NODE_ALL environmental variable.
    5. Otherwise, it will complain.
  • How do I get detail output of a check?

    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.

  • How do I check network or node connectivity related issues?

    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.

  • Can I check if the storage is shared among the nodes?

    Yes, you can use 'cluvfy comp ssa' command to check the sharedness of the storage.

  • Can CVU fix something in the system?

    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.

  • How do I check the Oracle Clusterware stack and other sub-components of it?

    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'.

  • How do I check user accounts and administrative permissions related issues?

    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.

  • How do I check if SSH is configured properly on my cluster?

    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.

  • How do I check minimum system requirements on the nodes?

    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.

  • Is there a way to compare nodes?

    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.

  • Why the peer comparison with -refnode says matched when the group or user does not exist?

    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.

  • Is there a way to verify that the Oracle Clusterware is working properly before proceeding with RAC install?

    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.

  • At what point cluvfy is usable? Can I use cluvfy before installing Oracle Clusterware?

    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.

  • How do I turn on tracing?

    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.

  • Where can I find the CVU trace files?

    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.

  • Why does cluvfy report "unknown" on a particular node in verbose mode?

    Cluvfy reports unknown when it can not conclude for sure if the check passed or failed.

  • Can I check the overall health of cluster and the databases?

    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).

  • Can I get a snapshot of the important attributes of the cluster and compare it with any previous snapshot?

    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.

  • Is cluvfy supported for Oracle Restart?

    Yes, CVU is supported for all current versions of Oracle Restart.