This is one of those posts that you find via Google using an error message for direct hit search. If you didn’t reach this post that way, I would advise you to stop reading here. If you are still reading then you (as I did) faced error messages below and got frustrated as it isn’t obvious what exactly Oracle means by wtmax/fsinfo/rt/rtp/wt/wtp etc. It all has been very confusing to me as I am an Oracle DBA and still need to learn a lot on the system administration level side of things.
Disclaimer: This comes from my laboratory sandbox environment. Don’t use it in a production environment until confirmed as a working and valid solution by your vendor.
You have configured Direct NFS, but see the following message in an instance’s alert.log:
... ALTER DATABASE OPEN Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab Direct NFS: channel config is: channel id  local [192.168.51.30] path [192.168.51.21] Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 963 nfsport 2049 Direct NFS: Invalid filer wtmax 525232 on filer KUKARACHA2 Direct NFS: Filer wtmax 525232 must be an even multiple of 32768 Thread 1 opened at log sequence 26 ...
If you switch on DNFS, debug events using the following command:
alter system set event="19392 trace name context forever, level 8","19394 trace name context forever, level 8","19396 trace name context forever, level 2","19398 trace name context forever, level 128"
You find the following messages in the DB writer (or client) trace files:
1350862522117253 kgnfs_get_fsinfo:1907: Filer wtmax 525232 on filer KUKARACHA2 1350862522118461 kgnfscrechan:3010: Failed to get root fsinfo 192.168.51.21 on filer KUKARACHA2 error 22 1350862522118498 kgnfsdeschan:3290: channel 0x7a839070 id 0 1350862522118548 kgnfsdeschan:3354: freeing channel 0x7a839070 id 0 flags 4 1350862522118585 kgnfscrechan:3087: warn path 192.168.51.21 filer KUKARACHA2 erc 9 1350862522118630 kgnfs_crechan:3209: Direct NFS: Could not connect to filer KUKARACHA2 1350862522118690 kgodm_identify:2766: path /nfsim3/iops_01.dbf fid 0 fsize 0 used 0 /nfsim3/iops_01.dbf erc 0 result 2 NOTE: disabled slave pool (status 3); using direct msgs
On the NFS Filer (server) side:
[email protected]_ol5_a sysconfig# service nfs stop [email protected]_ol5_a sysconfig# service nfslock stop [email protected]_ol5_a sysconfig# ps -ef | grep nfs root 3262 53 0 14:10 ? 00:00:00 nfsiod root 12903 8796 0 19:53 pts/0 00:00:00 grep nfs [email protected]_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size 524288 [email protected]_ol5_a sysconfig# echo 1048576 > /proc/fs/nfsd/max_block_size [email protected]_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size 1048576 [email protected]_ol5_a sysconfig# service start stop [email protected]_ol5_a sysconfig# service nfs start
Stop the database and unmount the NFS mount. Adjust the related configuration file (I don’t know which one as of now, give me and others a hint in the comments section!) to make the change permanent.
The alert.log and trace files should show normal messages like below:
... ALTER DATABASE OPEN Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab Direct NFS: channel config is: channel id  local [192.168.51.30] path [192.168.51.21] Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 883 nfsport 2049 Direct NFS: channel id  path [192.168.51.21] to filer [KUKARACHA2] via local [192.168.51.30] is UP Direct NFS: channel id  path [192.168.51.21] to filer [KUKARACHA2] via local [192.168.51.30] is UP Beginning crash recovery of 1 threads ...
... 1350863663882120 kgnfs_get_fsinfo:1907: Filer wtmax 1048576 on filer KUKARACHA2 1350863663882320 kgnfscrechan:3068: created channel 0x7a839070 1350863663882346 kgnfscrechan:2889: path 192.168.51.21 rserver 0x7a834048 local 192.168.51.30 routing on ch 1 1350863663882578 skgnfs_bind:1295: sockfd 33 port 20285 address 192.168.51.30 1350863663883086 kgnfscrechan:3068: created channel 0x7a839e20 1350863663883177 kgnfsexecnfs3proc:3430: channel 0x7a839070 proc 3 tmo 4294967295 1350863663883202 kgnfs_fillcmsg:4234: LOOKUP iops_01.dbf ...
Let me know if you found this info useful in the comment section. ;)
Thanks for the info.
Regarding configuration file location
“oranfstab” config file located under /etc or $ORACLE_HOME/dbs .
we’re benchmarking dnfs for some weeks now, but one major problem still remains, maybe you have some experience.
Simplified: writes are slower than reads. I sure it’s related to the 1MB IOs against the storage.
Do you have any idea how to manipulate IO size using dnfs? WTMAX und RTMAX in v$dnfs_servers defaults to 1M.
Btw: great stuff from you around dnfs.
Thanks a lot