Applicable Delphix Versions
- Click here to view the versions of the Delphix engine to which this article applies
Major Release All Sub Releases 6.0 184.108.40.206, 220.127.116.11, 18.104.22.168, 22.214.171.124, 126.96.36.199, 188.8.131.52, 184.108.40.206, 220.127.116.11, 18.104.22.168, 22.214.171.124, 126.96.36.199, 188.8.131.52, 184.108.40.206, 220.127.116.11, 18.104.22.168, 22.214.171.124, 126.96.36.199
An Oracle VDB using Direct NFS experiences performance degradation following an upgrade of the Oracle home in which it is running.
When starting a VDB or during refresh or provision jobs, if the target host meets the requirements for NFSv4 to be used and Oracle Direct NFS is enabled for the Oracle home, Delphix adds entries to the $ORACLE_HOME/dbs/oranfstab file defining the VDBs filesystem mounts. The Delphix OS user therefore needs write permission to the $ORACLE_HOME/dbs/oranfstab file on the target host.
If the write permission of the Delphix OS user is removed from the oranfstab file, it can no longer be updated when the filesystem mounts change during a VDB refresh job, leaving stale entries in place for the pre-refresh filesystems. This may occur if the ownership of the file is changed during Oracle home maintenance or upgrade work.
Having stale entries in the oranfstab can lead Direct NFS to repeatedly attempt to mount the old filesystems which may no longer be shared from the Delphix engine.
When this issue occurs, the VDB alert log shows repeated Direct NFS channel "UP" messages with no corresponding channel "DOWN" messages. Below is an example of this happening during a VDB refresh, as the media recovery begins. For long refresh jobs, these messages may repeat many times.
2022-01-12T05:20:29.247909-05:00 Serial Media Recovery started 2022-01-12T05:20:29.265376-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.280245-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.293713-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.306790-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP ORA-279 signalled during: alter database recover database noparallel until cancel using backup controlfile... alter database recover cancel 2022-01-12T05:20:29.367862-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.379952-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.392978-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP 2022-01-12T05:20:29.404966-05:00 Direct NFS: channel id  path [10.0.0.201] to filer [vdb10] via local  is UP
An Oracle 10046 trace of the VDB shows multiple occurrences of the following message.
kgnfs_mntrps:10078: KGNFS_NFSPROC3_MNT FAIL 13
Error code 13 translates to "permission denied". Details of how to perform a 10046 trace on a running session are available in the following Oracle document.
Confirming the Cause
The issue can be confirmed by comparing the mount entries for the affected VDB in the $ORACLE_HOME/dbs/oranfstab file with the filesystems that have been mounted by Delphix for a running refresh job.
In this example, the filesystem entries in the oranfstab file all start with '/domain0/group-3/oracle_db_container-7/oracle_timeflow-8'.
[oracle@gi-rhel77 dbs]# cat oranfstab ###CONFIGURATION ADDED BY DELPHIX 564d05d6_90e1_0db8_96de_2ffd9d93ead7 server: vdb10 path: 10.0.0.201 security_default: sys mnt_timeout: 90 nfs_version: nfsv4 export: /domain0/group-3/oracle_db_container-7/oracle_timeflow-8/datafile mount: /mnt/provision/vdb10/datafile export: /domain0/group-3/oracle_db_container-7/oracle_timeflow-8/archive mount: /mnt/provision/vdb10/archive export: /domain0/group-3/oracle_db_container-7/oracle_timeflow-8/temp mount: /mnt/provision/vdb10/temp export: /domain0/group-3/oracle_db_container-7/oracle_timeflow-8/source-archive mount: /mnt/provision/vdb10/source-archive
Checking the paths of the NFS filesystems mounted by Delphix for the running refresh job, we see that they have changed and now start with '/domain0/group-3/oracle_db_container-7/oracle_timeflow-260'.
[oracle@gi-rhel77 dbs]$ mount | grep vdb10 10.0.0.201:/domain0/group-3/oracle_db_container-7/oracle_timeflow-260 on /mnt/provision/vdb10 type nfs4 (rw,nosuid,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.43.76.27,local_lock=none,addr=10.0.0.201)
The entries in $ORACLE_HOME/dbs/oranfstab still refer to filesystems from a previous timeflow that are no longer being shared by the Delphix engine, hence the permission denied errors when Direct NFS attempts to mount them.
The repeated mount attempts add overhead which can impact the performance of the VDB that may manifest as longer than expected refresh jobs.
- Oracle Direct NFS is enabled for the Oracle home in use by the VDB.
- The target host meets the requirements for NFSv4 to be used for the Delphix filesystem mounts.
- File ownership or permissions have changed in the affected Oracle home.
To resolve this issue, confirm that the Delphix OS user on the affected target host has write permission on the $ORACLE_HOME/dbs/oranfstab file.
Once the Delphix OS user can again write to the $ORACLE_HOME/dbs/oranfstab file, any stale entries will be removed during the next start or refresh job for an affected VDB.
The following articles may provide more information or related information to this article: