Skip to main content
Delphix

Oracle VDB Provision Hangs when Creating Control File (KBA4333)

 

 

KBA

KBA# 4333

Troubleshooting Oracle VDB Provision Job

An Oracle Virtual Database (VDB) provision job stops at the 'Creating Control File' stage for an extended period of time, making no further progress.

The last entry in the VDB's alert log is an "ALTER DATABASE MOUNT" command.

Fri May 31 12:56:10 2019
ALTER DATABASE   MOUNT

Check whether the new control file has successfully been created within the mountpoint directory.  In this example below, it has.

/delphix/vdb1/datafile/data/u01/app/oradata/orcl-> ls -l
total 28
-rw-r----- 1 oracle oinstall 12238848 May 31 12:56 control01.ctl

If so, can the file be locked manually from the command line on the target host?  The flock command will attempt to place a lock on the file for the duration of the specified command, in this case 'sleep 2'.  If successful, this command should return after 2 seconds.

$ flock -x control01.ctl sleep 2
$

If the flock command does not return after 2 seconds, there may be a problem communicating with the NFS lock manager on the Delphix engine.

Check that port 4045 is open to the Delphix engine.  On Linux, this can be confirmed using the netcat utility, if installed, entering the IP address or hostname of the Delphix engine, as below.  If the connection is successful as in this example, the port is confirmed to be open.

$ nc -vv 10.43.84.130 4045
Connection to 10.43.84.130 4045 port [tcp/*] succeeded!
^C

If the host does not have netcat installed, the following can be used as an alternative connectivity test on Linux.

$ echo > /dev/tcp/10.43.84.130/4045
$

If the port is open and the remote lock manager is listening, the command will return immediately with no output.  If the port is blocked, the command will not return until Ctrl-c is pressed to interrupt it.

Resolution

To resolve, open port 4045 between the VDB target host and the Delphix engine and confirm that you can then manually lock the file using flock, as above.  If so, retry the VDB provision job.