Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Expdp aus der Oracle RAC-Umgebung

Der Fehler, den Sie erhalten, ist 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.

Also entweder die /usr/apps/datafiles Verzeichnis existiert nicht, oder es ist nicht für den Oracle-Prozesseigentümer schreibbar (z. B. das oracle Konto); oder möglicherweise (aber weniger wahrscheinlich) existiert die von Ihnen angegebene Protokolldatei bereits und kann nicht überschrieben werden.

Da Sie gesagt haben, dass es existiert, sehen Sie sich die vollständigen Berechtigungen des Verzeichnisses an (z. B. ls -ld /usr/apps/datafiles , überprüfen Sie den Eigentümer und die Gruppe des Oracle-Prozesseigentümers (z. B. id -a ), um die Berechtigungen für dieses Verzeichnis und sein übergeordnetes Verzeichnis zu vergleichen. Wenn das alles in Ordnung aussieht, prüfen Sie, während Sie als Oracle-Prozesseigentümer angemeldet sind, ob Sie eine Datei unter dem Verzeichnis erstellen können, z. B.:

touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file

Wenn all dies funktioniert, und ich vermute, dass dies aufgrund Ihres Kommentars wahrscheinlich der Fall ist, müssen Sie möglicherweise auf den Support-Hinweis 1305166.1 verweisen, da Sie RAC verwenden.

Das erste, was Sie versuchen sollten, ist expdp ohne @orcl , wie es scheint (a) gibt es Probleme, wenn der Listener und die Datenbank unter verschiedenen Konten laufen (z. B. grid und oracle , und das grid Benutzer kann nicht auf das OS-Verzeichnis zugreifen - wiederholen Sie die touch testen Sie als dieser Benutzer, um zu sehen, ob dies der Fall ist); oder (b) wenn der Alias ​​lastverteilt ist und am Ende auf einem anderen Knoten läuft, der das Verzeichnis nicht hat.