Question:
I am running an RMAN job and I get the OS file Access error when trying to
write to a shared disk on NFS:
RMAN-03009: failure of backup command on
ch1 channel at 02/20/2011 18:19:46
ORA-19504: failed to create
file "\\BACKUP1635\X$\ARC1BM55JL8_1_1"
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 5) Access is
denied.
My Windows Oracle ID can write to the shared directory, so how do I
fix the O/S-Error: (OS 5) Access is denied error?
Answer: Remember, your OS user ID may not be the ID that is running a
submitted RMAN job, in an operating system, UNIX, Linux or Windows.
The O/S-Error: (OS 5) Access is
denied error happens when the RMAN user does not have permission to
write to the filesystem.
A quick chmod 770 on the directory
would fix this O/S Access Denied error in Linux/UNIX . . .
On Windows, your default is the
OracleService<SID> service, which runs as the user LocalSystem. The
Windows LocalSystem user is not allowed to write to shared drives.
I would change your OracleService<SID>
to logon explicitly as an Oracle user with admin privileges. In the
ControlPanel services:
-
Right click
on service
-
Select
'properties'
-
Select
'logon'
-
Change the
default user ID to an Oracle user with Windows administrator
privileges
There is also a bug on this see MOSC Note:
387700.1. The workaround is to set this event in your spfile
(or equivalent, if using pfile):
alter system set event=10298 trace name context forever,
level 32 scope= spfile ;
In UNIX/Linux, remember that
while it may work for your oracle ID, you are not logged-in as the
RMAN user, and even with drwxrwxrwx there is a read permission issue
. . .
-
This could also have to do with the NFS
mount permissions. When you mount with NFS, make sure to
chown it to the Oracle user.
-
Your PATH may be incomplete.
You need to make sure that the RMAN user has it's PATH set
properly (via the .profile, .login, .bshrc or
.cshrc script), and that all directories in the path have
permission for the RMAN user.
-
Check
$ORACLE_HOME/network/admin and see if it has drwxrwxrwx