Friday, June 18, 2010

I/O Errors using NFS on Netapps storage on Oracle 10.2.0.4

I recently faced the following issue, on one of my client environment.

After successfully creating a 10g database using NFS file system on a Linux OS, I turned it over to the client for production implementation. Developers started populating the data using Schema level import. When a large table is imported, the import failed with the following errors

ORA-01115: IO error reading block from file 6 (block # 5631)
ORA-01110: data file 6: '/u0201/oradata/reportdata.dbf'
ORA-27091: unable to queue I/O
ORA-27072: File I/O error
Linux-x86_64 Error: 5: Input/output error
Additional information: 4
Additional information: 5630

After searching several hours on Oracle Support, found a document that talked about setting up filesystemio_options to 'setall' on NFS file systems for redo log corruption. We did not have any corruption, but I wanted to try it anyway because since we were using NFS.

Alter system set filesystemio_options=setall scope=spfile;

After setting this, developers did the imports successfully without any problem.


Parameter: FILESYSTEMIO_OPTIONS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"directIO" - This allows directIO to be used where supported by the OS. Direct IO bypasses any Unix buffer cache. As of 10.2 most platforms will try to use "directio" option for NFS mounted disks (and will also check NFS attributes are sensible).
"setall" - Enables both ASYNC and DIRECT IO. The 'setall' option chooses async or direct I/O based on the platform and file system used.
Enabling directio against nfs datafiles/redo logs should always be used so that no writes are ever cached in the os buffer cache. The consistency of writes cannot be guaranteed when relying on stateless nfs to perform asynchronous writes over the network.

No comments:

Post a Comment