Felet du får är 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å antingen /usr/apps/datafiles
katalogen finns inte, eller så är den inte skrivbar av Oracle-processens ägare (t.ex. oracle
konto); eller möjligen (men mindre troligt) loggfilen du angav redan existerar och kan inte skrivas över.
Eftersom du har sagt att den finns, titta på de fullständiga behörigheterna för katalogen (t.ex. ls -ld /usr/apps/datafiles
, kontrollera ägaren och gruppen för Oracle-processens ägare (t.ex. id -a
) för att jämföra behörigheterna för den katalogen och dess överordnade. Om allt ser OK ut, medan du är inloggad som Oracle-processens ägare, kontrollera om du kan skapa en fil under katalogen, t.ex.:
touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file
Om allt detta fungerar, och jag antar att det förmodligen gör det från din kommentar, så eftersom du använder RAC kan du behöva hänvisa till supportnotis 1305166.1.
Det första du ska försöka är att göra expdp
utan @orcl
, som det verkar (a) finns det problem när lyssnaren och databasen körs under olika konton (t.ex. grid
och oracle
och grid
användaren kan inte komma åt OS-katalogen - upprepa touch
testa som den användaren för att se om så är fallet); eller (b) om aliaset är belastningsbalanserat och det slutar köra på en annan nod som inte har katalogen.