L'erreur que vous obtenez est 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.
Donc soit le fichier /usr/apps/datafiles
répertoire n'existe pas, ou il n'est pas accessible en écriture par le propriétaire du processus Oracle (par exemple, le oracle
Compte); ou peut-être (mais moins probablement) le fichier journal que vous avez spécifié existe déjà et ne peut pas être écrasé.
Puisque vous avez dit qu'il existe, regardez les permissions complètes du répertoire (par exemple ls -ld /usr/apps/datafiles
, vérifiez le propriétaire et le groupe du propriétaire du processus Oracle (par exemple, id -a
) pour comparer les autorisations sur ce répertoire et son parent. Si tout semble OK, tout en étant connecté en tant que propriétaire du processus Oracle, vérifiez si vous pouvez créer un fichier sous le répertoire, par exemple :
touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file
Si tout cela fonctionne, et je suppose que c'est probablement le cas d'après votre commentaire, alors puisque vous utilisez RAC, vous devrez peut-être vous référer à la note d'assistance 1305166.1.
La première chose à essayer est de faire le expdp
sans le @orcl
, car il semble (a) qu'il y ait des problèmes lorsque l'écouteur et la base de données s'exécutent sous différents comptes (par exemple, grid
et oracle
, et la grid
l'utilisateur ne peut pas accéder au répertoire du système d'exploitation - répétez le touch
testez en tant qu'utilisateur pour voir si c'est le cas); ou (b) si l'alias est à charge équilibrée et qu'il finit par s'exécuter sur un nœud différent qui n'a pas le répertoire.