In the blog entry entitled “Oracle 10.2.0.3 Patchset is Not Functional with Solaris SPARC 64-bit and Veritas Filesystem”, I pointed out that the the 10.2.0.3 patchset was not functional if your database resides in VxFS (bug 5747918). There is updated information now, but first a bit of humor.
In the solution section of the note covering this bug, Metalink note 405825.1 states:
Move the entire database to a non-Veritas filesystem
Download and apply Metalink patch:5752399.
The instructions to apply patch:5752399 are included in the patch README file.
Move the entire database? Uh, I’d go for the patch for the patchset. Or as I’ve already pointed out, Oracle Disk Manager is not affected by this bug at all.
The Patch for the Patchset
Oracle Patch number 5752399 is considered a mandatory patch for the 10.2.0.3 patchset.
Incorrectly Describing the Incorrectness
Regarding the nature of the bug, Metalink note 405825.1 incorrectly states:
The 10.2.0.3 patchset code changes attempted to use directio with vxfs (Veritas) filesystems, which vxfs does not support.
On the contrary, VxFS does support direct I/O via:
- Quick I/O
- VxFS mount options (e.g., convosync)
This documentation on Sun’s website gets it correctly:
If you are using databases with VxFS and if you have installed a license key for the VERITAS Quick I/O™ for Databases feature, the mount command enables Quick I/O by default. The noqio option disables Quick I/O. If you do not have Quick I/O, mount ignores the qio option. Alternatively, you can increase database performance using the mount option convosync=direct, which utilizes direct I/O.
Correctly Describing the Incorrectness
Since the Metalink note got it wrong by stating that VxFS doesn’t support “directio” (a.k.a Direct I/O), I’ll clear it up here. As I stated in this blog entry, the true nature of the bug is that the 10.2.0.3 porting team implemented a call to the Solaris directio(3C) library routine which is a way to push Direct I/O onto a UFS file, but is not supported by VxFS. There, now, doesn’t that make more sense? Am I being a stickler? Yes, because there is a huge difference between the two following phrases:
attempted to use directio with vxfs
attempted to use directio(3C) with vxfs
Did they really suggest moving an entire database as a workaround for a misplaced call to directio(3C)?