Den fejl, du får, er ORA-29283
:
> oerr ora 29283
29283. 00000 - "invalid file operation"
*Cause: An attempt was made to read from a file or directory that does
not exist, or file or directory access was denied by the
operating system.
*Action: Verify file and directory access privileges on the file system,
and if reading, verify that the file exists.
Så enten /usr/apps/datafiles
biblioteket eksisterer ikke, eller det kan ikke skrives af Oracle-processejeren (f.eks. oracle
konto); eller muligvis (men mindre sandsynligt) findes den logfil, du har angivet, allerede og kan ikke overskrives.
Siden du har sagt, at den eksisterer, skal du se på mappens fulde tilladelser (f.eks. ls -ld /usr/apps/datafiles
, tjek ejeren og gruppen af Oracle-processejeren (f.eks. id -a
) for at sammenligne tilladelserne på den mappe og dens overordnede. Hvis det hele ser OK ud, mens du er logget ind som Oracle-procesejer, skal du kontrollere, om du kan oprette en fil under mappen, f.eks.:
touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file
Hvis alt det virker, og det gør jeg nok ud fra din kommentar, så da du bruger RAC, skal du muligvis henvise til supportnotat 1305166.1.
Den første ting at prøve er at udføre expdp
uden @orcl
, som det ser ud til (a) er der problemer, når lytteren og databasen kører under forskellige konti (f.eks. grid
og oracle
, og grid
brugeren kan ikke få adgang til OS-biblioteket - gentag touch
test som den bruger for at se, om det er tilfældet); eller (b) hvis aliaset er belastningsbalanceret, og det ender med at køre på en anden node, som ikke har mappen.