version 1.0.1, 2013-10-10 : Adding forgotten prerequisites
Expdp or rman on an NFS mount point in AIX
This document describes how to do datapump exports and rman backups on NFS mount points on AIX. It mainly describes how to correct ORA-01580 and ORA-27054 errors.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
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
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