2011-11-10

directio and NFS

Potential Lost Writes: RAC on NAS using NFS may not use DIRECTIO or HP on NFS [ID 566545.1]

Symptoms
  • When RAC is used, O_DIRECT is the default option to open files in NFS.  However, there are some cases where O_DIRECT is not used and the database may lose a write.  For this case the NFS mount point options are in accordance with Note 359515.1
  • There is another case that is specific to HP when NFS is used without the forcedirectio IO option where the database may end up losing IO.
  •  Lost IO may cause different errors like:
ORA-600 [4193]
ORA-600 [4194]
ORA-600 [4137]
ORA-600 [3020] in a media recovery
ORA-600 [kccchb_3]
ORA-600 [kdsgrp1]
ORA-600 [qertbFetchByRowID]
ORA-600 [kcbz_check_objd_typ_3]
ORA-1499 on "analyze table validate structure cascade"
ORA-8102 on delete/update
  • Some of these errors are signs of logical corruptions on undo segments, redo log files and inconsistencies between tables and indexes.

Cause

  • There are some cases where O_DIRECT is not used in RAC environment due to unpublished bug 5856342.  Without this fix in a RAC environment using NFS the database may lose a write unless DIRECTIO is explicitly specified.
@ See Bug 7006179

  • There is another case that is HP specific where Oracle does not check for forcedirectio in the mount options due to Bug 6922729.  See Note 6922729.8

Solution

  • For Bug 5856342 in order to prevent this issue install an Oracle RDBMS version greater than 10.2.0.3 or specify DIRECTIO in the database parameter file like:
filesystemio_options=DIRECTIO or SETALL
  • For Bug 6922729 (HP specific) install an one off patch for it or specify forcedirectio in the mount options for Oracle Files.  See Note 6922729.8



Niciun comentariu:

Trimiteți un comentariu