O erro que você está recebendo é
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.
Portanto, o
/usr/apps/datafiles
diretório não existe ou não é gravável pelo proprietário do processo Oracle (por exemplo, o oracle
conta); ou possivelmente (mas menos provável) o arquivo de log que você especificou já existe e não pode ser substituído. Como você disse que existe, veja as permissões completas do diretório (por exemplo,
ls -ld /usr/apps/datafiles
, verifique o proprietário e o grupo do proprietário do processo Oracle (por exemplo, id -a
) para comparar as permissões nesse diretório e seu pai. Se tudo estiver OK, enquanto estiver conectado como proprietário do processo Oracle, verifique se você pode criar um arquivo no diretório, por exemplo:touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file
Se tudo isso funcionar, e acho que provavelmente funciona pelo seu comentário, então, como você está usando o RAC, talvez seja necessário consultar a nota de suporte 1305166.1.
A primeira coisa a tentar é fazer o
expdp
sem o @orcl
, como parece (a) há problemas quando o ouvinte e o banco de dados estão sendo executados em contas diferentes (por exemplo, grid
e oracle
, e a grid
o usuário não pode acessar o diretório do SO - repita o touch
teste como esse usuário para ver se é esse o caso); ou (b) se o alias tiver balanceamento de carga e estiver sendo executado em um nó diferente que não possui o diretório.