Encountering errors during Oracle Database installation can be frustrating, especially when dealing with generic errors like PRVG-1019. In this blog, we’ll address the PRVG-1019 error specifically related to NTP configuration on Oracle Enterprise Linux 8 (OEL 8)

Troubleshooting PRVG-1019

To begin the investigation the first step is to look through the log files generated. The runInstaller by default will provide the path of the error logs. The problem can be found in the logs by looking at the “CRITICAL” checks that are failing. Here is the error


Error Message:PRVG-1019 : The NTP configuration file "/etc/ntp.conf" does not          exist on nodes "node-02,node-01"
Cause: The configuration file specified was not available or was
       inaccessible on the specified nodes.
INFO: Action: To use NTP for time synchronization, create this file and set up its configuration as described in your vendor''s NTP document. To use
CTSS for time synchronization the NTP configuration should be uninstalled on all nodes of the cluster. Refer to section "Preparing Your Cluster" of the book "Oracle Database 2 Day + Real Application Clusters Guide".

 *********************************************
    INFO:  [May 10, 2024 6:40:56 PM] Clock Synchronization: This test checks the Oracle Cluster Time Synchronization Services across the cluster nodes.
    INFO:  [May 10, 2024 6:40:56 PM] Severity:CRITICAL
    INFO:  [May 10, 2024 6:40:56 PM] OverallStatus:VERIFICATION_FAILED
    INFO:  [May 10, 2024 6:40:56 PM] 
    INFO:  [May 10, 2024 6:40:56 PM] Daemon 'ntpd':
    INFO:  [May 10, 2024 6:40:56 PM] Severity:CRITICAL
    INFO:  [May 10, 2024 6:40:56 PM] OverallStatus:VERIFICATION_FAILED
*********************************************
                                           
Looking at the error it indicates, that the NTPD service is not running on our system. This is a RAC database installation, and the reponse file looks as follows. 

./runInstaller -silent -responseFile ./db.rsp 

$ cat /db.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=oinstall
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=oinstall
oracle.install.db.OSKMDBA_GROUP=oinstall
oracle.install.db.OSRACDBA_GROUP=oinstall
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.CLUSTER_NODES=node-01,node-02 

Oracle RAC requires cluster synchronization service. You could either use the RAC software’s native CTSS or an OS based service like NTP. Since CTSS is running in an observer mode in our cluster, it expects an OS based Service to be present, an when it can’t find ntpd service the pre-check fails.

With Oracle Linux 8, chrony is the default service of choice. You can read about NTP, chrony and more in this blog. So the first thing to verify is whether our NTP service is running on the system or not. As you can see the chronyd service is running fine.

So it appears, this is a bug with the runInstaller, where the ruInstaller isn’t able to identify the chronyd service.

systemctl status chronyd
 chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2023-09-23 04:45:25 UTC; 7 months 19 days ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 7860 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 7806 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 7828 (chronyd)
    Tasks: 1 (limit: 2451647)
   Memory: 1.1M
   CGroup: /system.slice/chronyd.service
           └─7828 /usr/sbin/chronyd

Solution

So in order to get past it, we could either ignore all the pre-requiestes, but there’s a better way. The variable ORA_DISABLED_CVU_CHECKS instructs the installer to skip NTP-related checks, allowing the installation to proceed smoothly.

$ export ORA_DISABLED_CVU_CHECKS="TASKNTP,TASKCTSSINTEGRITY"

$ echo $ORA_DISABLED_CVU_CHECKS 
TASKNTP,TASKCTSSINTEGRITY

$ ./runInstaller -silent -responseFile ./db_install.rsp -waitforcompletion
Launching Oracle Database Setup Wizard...

[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2024-05-10_08-34-18PM/installActions2024-05-10_08-34-18PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2024-05-10_08-34-18PM/installActions2024-05-10_08-34-18PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/oracle/product/19.3.0/db_1/install/response/db_2024-05-10_08-34-18PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2024-05-10_08-34-18PM/installActions2024-05-10_08-34-18PM.log

As a root user, execute the following script(s):
        1. /u01/app/oracle/product/19.3.0/db_1/root.sh

Execute /u01/app/oracle/product/19.3.0/db_1/root.sh on the following nodes: 
[node-01, node-02]

Successfully Setup Software with warning(s).

By executing this command, you’re essentially telling Oracle to ignore NTP configuration validation during installation, ensuring that the process doesn’t get hung up on this particular issue. Sometimes, during such transitions, legacy checks or configurations may still persist, leading to errors like PRVG-1019. In such cases, the provided workaround becomes invaluable, allowing us to bypass NTP-related checks and proceed with the installation smoothly.