sql >> Databasteknik >  >> RDS >> Oracle

Expdp från Oracle RAC-miljö

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.



  1. Lägger till HTML-tagg i titeln på trädfrågan i Oracle APEX

  2. Hur använder man PATCH för att uppdatera ett enkelt databasfält?

  3. mysql_num_rows-ersättning att rekommendera?

  4. SQL-frågan tar timeout när den körs från C#, snabbt i SQL Server Management Studio