Oracle
 sql >> Database >  >> RDS >> Oracle

Expdp dall'ambiente Oracle RAC

L'errore che ricevi è 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.

Quindi o il /usr/apps/datafiles la directory non esiste o non è scrivibile dal proprietario del processo Oracle (ad es. oracle account); o forse (ma meno probabile) il file di registro che hai specificato esiste già e non può essere sovrascritto.

Dato che hai detto che esiste, guarda i permessi completi della directory (ad es. ls -ld /usr/apps/datafiles , controlla il proprietario e il gruppo del proprietario del processo Oracle (ad es. id -a ) per confrontare le autorizzazioni su quella directory e il relativo genitore. Se tutto sembra a posto, mentre sei connesso come proprietario del processo Oracle controlla se puoi creare un file nella directory, ad esempio:

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

Se tutto funziona, e immagino che probabilmente lo sia dal tuo commento, dal momento che stai utilizzando RAC potresti dover fare riferimento alla nota di supporto 1305166.1.

La prima cosa da provare è fare expdp senza il @orcl , come sembra (a) ci sono problemi quando il listener e il database vengono eseguiti con account diversi (ad es. grid e oracle e la grid l'utente non può accedere alla directory del sistema operativo - ripeti il ​​touch prova come quell'utente per vedere se è così); o (b) se l'alias è con bilanciamento del carico e sta finendo per essere eseguito su un nodo diverso che non ha la directory.