sql >> Databáze >  >> RDS >> Oracle

Expdp z prostředí Oracle RAC

Chyba, kterou dostáváte, je 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.

Tedy buď /usr/apps/datafiles adresář neexistuje nebo do něj nemůže zapisovat vlastník procesu Oracle (např. oracle účet); nebo možná (ale méně pravděpodobné) vámi zadaný soubor protokolu již existuje a nelze jej přepsat.

Protože jste řekli, že existuje, podívejte se na úplná oprávnění adresáře (např. ls -ld /usr/apps/datafiles , zkontrolujte vlastníka a skupinu vlastníka procesu Oracle (např. id -a ), chcete-li porovnat oprávnění k tomuto adresáři a jeho nadřazenému adresáři. Pokud vše vypadá v pořádku, při přihlášení jako vlastník procesu Oracle zkontrolujte, zda můžete vytvořit soubor v adresáři, např.:

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

Pokud to všechno funguje, a myslím, že z vašeho komentáře pravděpodobně ano, pak protože používáte RAC, možná budete muset odkázat na poznámku podpory 1305166.1.

První věc, kterou můžete vyzkoušet, je provést expdp bez @orcl , jak se zdá (a) dochází k problémům, když posluchač a databáze běží pod různými účty (např. grid a oracle a grid uživatel nemůže získat přístup k adresáři OS - opakujte touch otestujte jako tento uživatel, abyste zjistili, zda tomu tak je); nebo (b) pokud je alias vyvážený zátěží a běží na jiném uzlu, který nemá adresář.



  1. Vnitřní spojení mezi třemi tabulkami v mysql

  2. hodnota je příliš dlouhá pro typový znak proměnlivý(255) pro délku 100000

  3. Připojovací řetězec Oracle se zavináčem @ v hesle

  4. Symfony:Základní tabulka nebo pohled již existuje:1050 Tabulka 'migration_versions' již existuje