2.3 Running Compliance Checks On-Demand

Usually, compliance checks run at scheduled intervals. However, Oracle recommends that you run compliance checks on-demand when needed.

Examples of when you must run compliance checks on-demand:

  • Pre- or post-upgrades

  • Machine relocations from one subnet to another

  • Hardware failure or repair

  • Problem troubleshooting

  • In addition to go-live testing

To start on-demand compliance check runs, log in to the system as an appropriate user, and then run an appropriate tool. Specify the options to direct the type of run that you want.
$ orachk
$ exachk


To avoid problems while running the tool from terminal sessions on a network attached workstation or laptop, consider running the tool using VNC. If there is a network interruption, then the tool continues to process to completion. If the tool fails to run, then re-run the tool. The tool does not resume from the point of failure.

Output varies depending on your environment and options used:

  • The tool starts discovering your environment

  • If you have configured passwordless SSH equivalency, then the tool does not prompt you for passwords

  • If you have not configured passwordless SSH for a particular component at the required access level, then the tool prompts you for password

  • If the daemon is running, then the commands are sent to the daemon process that answers all prompts, such as selecting the database and providing passwords

  • If the daemon is not running, then the tool prompts you for required information, such as which database you want to run against, the required passwords, and so on

  • The tool investigates the status of the discovered components


    If you are prompted for passwords, then the Expect utility runs when available. In this way, the passwords are gathered at the beginning, and the Expect utility supplies the passwords when needed at the root password prompts. The Expect utility being supplying the passwords enables the tool to continue without the need for further input. If you do not use the Expect utility, then closely monitor the run and enter the passwords interactively as prompted.

    Without the Expect utility installed, you must enter passwords many times depending on the size of your environment. Therefore, Oracle recommends that you use the Expect utility.

    While running pre- or post-upgrade checks, Oracle ORAchk and Oracle EXAchk automatically detect databases that are registered with Oracle Clusterware and presents the list of databases to check.

    Run the pre-upgrade checks during the upgrade planning phase. Oracle ORAchk and Oracle EXAchk prompt you for the version that you are planning to upgrade:
    $ orachk –u –o pre
    $ exachk –u –o pre
    After upgrading, run the post-upgrade checks:
    $ orachk –u –o post
    $ exachk –u –o post
    1. The tool starts collecting information across all the relevant components, including the remote nodes.
    2. The tool runs the compliance checks against the collected data and displays the results.
    3. After completing the compliance check run, the tool points to the location of the detailed HTML report and the .zip  file that contains more output.

2.3.1 Running On-Demand With or Without the Daemon

When running on-demand, if the daemon is running, then the daemon answers all prompts where possible including the passwords.

To run health checks on-demand with or without the daemon:

  1. To run health checks on-demand if the daemon is running, then use:
    $ orachk
    $ exachk
  2. To avoid connecting to the daemon process, meaning the tool to interactively prompt you as required, use the –nodaemon option.
    $ orachk –nodaemon
    $ exachk –nodaemon


Daemon mode is supported only on the Linux and Solaris operating systems.


If you are running database pre-upgrade checks (-u –o pre) and if the daemon is running, then you must use the –nodaemon option.

2.3.2 Sending Results by Email

Optionally email the HTML report to one or more recipients using the –sendemail option.

To send health check run results by email:

  1. Specify the recipients in the NOTIFICATION_EMAIL environment variable.
    $ orachk –sendemail "NOTIFICATION_EMAIL=email_recipients"
    $ exachk –sendemail "NOTIFICATION_EMAIL=email_recipients"

    Where email_recipients is a comma-delimited list of email addresses.

  2. Verify the email configuration settings using the –testemail option.

Related Topics

2.3.3 How Long Should It Take to Run Oracle EXAchk?

The elapsed time for an Oracle EXAchk run varies based on the cluster size, number of Oracle Databases that are running, hardware type and configuration, overall system load, and so on.

The elapsed times presented here are only for example purposes because the experience with each configuration is unique.

Table 2-3 Oracle Autonomous Health Framework Run Time

Hardware Configuration Oracle Database Configuration Run Time (minutes)

X2-2 1/4 rack

No Oracle Databases


X4-2 1/4 rack

Eight Oracle Databases


X4-8 full rack

One Oracle Database


X5-2 1/4 rack dom0

Not applicable


X5-2 1/4 rack domU

One CDB with one PDB per server


X6-2 1/4 rack dom0

Not applicable


X6-2 1/4 rack domU

One CDB with 50 PDBs per server


X7-2 1/4 rack

One CDB with one PDB per server


X7-8 full rack

One CDB with one PDB per server