Joseph Herlant
version 1.0.1, 2013-10-10 : Adding forgotten prerequisites

1. Introduction

This document describes how to get the expdp datapump export and rman backup work on an NFS mount point in an AIX environment. It deals with the ORA-01580 and ORA-27054 errors.

2. Prerequisites

A prerequisite is to have created the oracle corresponding directory using, for example:

create directory MY_DIRECTORY as '/local/mount/point';

You can check the available Oracle directories using the following in sqlplus:

set lines 200 pages 1024;
col owner for a20;
col DIRECTORY_NAME for a25;
col DIRECTORY_PATH for a50;
select OWNER, DIRECTORY_NAME, DIRECTORY_PATH from DBA_DIRECTORIES;

3. Procedure

Important

In this procedure, you change to change all the reference to:

  • "remote_host" with your NFS server name

  • "local_host_node" with the server name you are trying to mount NFS mount point on

  • "/remote/fs/path" with the path of the directory as available o the NFS server

  • "/local/mount/point" with the path of the mount point you are trying to mount

  • "oracle:dba" with the oracle account name and oracle group name (from chown things)

Also note that all the procedure is to be executed on the server where Oracle runs.

First, verify that the remote mount point is available for you using showmount.

showmount -e remote_host

Output should look like this.

export list for remote_host:
/remote/fs/path   local_host_node
Warning

If you have multiple IPs on the "local_host_node" server, verify that DNS and reverse DNS is working correctly.

If you have any issue while mounting the mount point, just add the name of both nodes (NFS server and client) on both local and remote servers in the /etc/hosts file. This generally solves the issues the quick and dirty way. The clean way is to ensure your DNS and reverse are all correct, but before souting at your DNS admins, do the /etc/hosts thing, that if it works, it’s a name resolution problem so you can ask your DNS team! ;)

On the local node, then just mount the mount point using the bg,hard,intr,rsize=32768,wsize=32768,vers=3,proto=tcp,sec=sys,rw options and add the own of the mount point to Oracle user.

mount -n remote_host -o bg,hard,intr,rsize=32768,wsize=32768,vers=3,proto=tcp,sec=sys,rw /remote/fs/path /local/mount/point
# Don't forget to change the permissions...
chown oracle:dba /local/mount/point

If you try a datapump export at this point, you could encounter this kind of issue:

Export: Release 10.2.0.5.0 - 64bit Production on Thursday, 10 October, 2013 10:28:57

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.5.0 - 64bit Production
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31641: unable to create dump file "/mount/point/20131010_expdp_file.dmp"
ORA-27054: NFS file system where the file is created or resides is not mounted with correct options
Additional information: 6

And this one with an RMAN backup:

ORA-01580: error creating backup file /mount/point/My_backup_file.bkp

This is mainly caused by the fact that Oracle tools do not find the occurence fo the mount point in the /etc/filesystems file with the right options! To correct this, go to /etc/filesystems and add the following block (replacing the current directory path and host name with your own values!):

/local/mount/point:
  dev             = "/remote/fs/path"
  vfs             = nfs
  nodename        = remote_host
  mount           = true
  options         = bg,hard,intr,rsize=32768,wsize=32768,proto=udp,sec=sys,rw
  account         = false