Arquivo dmp de importação Oracle:exceções ora [fechado]
-
29-09-2020 - |
Pergunta
Estou tentando importar um .dmp
arquivo para meu banco de dados Oracle RAC usando o seguinte comando:
C:\app\ptmp>impdp [user]/[password]@'DEVRAC-SCAN:1521/DB' DUMPFILE=UPG_E_7d291ff.dmp
LOGFILE=UPG_E_7d291ff.log TABLE_EXISTS_ACTION=REPLACE
E recebo a seguinte saída do Oracle:
Import: Release 12.1.0.2.0 - Production on Thu Dec 17 09:43:13 2015
Copyright (c) 1982, 2015, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Advanced Analytics and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
Eu olhei em volta um pouco e algumas pessoas (https://community.oracle.com/thread/3788748?start=0&tstart=0 && https://stackoverflow.com/questions/11878631/expdp-from-oracle-rac-environment) disse que poderia ser uma questão de permissões, então verifiquei as permissões com:
C:\app\ptmp>icacls c:\app\oracle\admin\pldb\dpdump
c:\app\oracle\admin\pldb\dpdump Everyone:(R,W)
BUILTIN\Administrators:(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
PL\PLORACLE:(OI)(CI)(F)
DEVRAC1\Administrator:(OI)(CI)(F)
DEVRAC1\ORA_GRID_LISTENERS:(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
PL\PLORACLE:(I)(OI)(CI)(F)
DEVRAC1\Administrator:(I)(OI)(CI)(F)
DEVRAC1\ORA_GRID_LISTENERS:(I)(OI)(CI)(F)
o Oraculo tnslistener
corre sob PL\PLORACLE
do utilizador.<- isso não é verdade, veja as edições.
Usei estes comandos para criar/alterar o diretório da bomba de dados:
echo create or replace directory DATA_PUMP_DIR as 'C:\app\oralce\admin\pldb\dpdump\'; >1_UPDATE_DUMP_LOC.SQL
echo grant read,write on directory DATA_PUMP_DIR to public; >>1_UPDATE_DUMP_LOC.SQL
Eles foram executados usando este comando em um arquivo em lote:
sqlplus -S [user]/[password]@'DEVRAC-SCAN:1521/PLDB' <1_UPDATE_DUMP_LOC.SQL >1_UPDATE_DUMP_LOC.LST
O usuário que está executando os comandos tem sysdba
privilégios para o banco de dados.Então, com tudo isso, não consigo entender por que a importação do .dmp
arquivo não está funcionando.
EDITAR:
O Oraculo tnslistener
está realmente funcionando como local service
em vez de PL\PLORACLE
como eu pensava.O OracleJobSchedulePLDB_1
, OracleServicePLDB_1
e OracleVssWriterPLDB_1
correr sob PL\PLORACLE
no entanto.O resto dos serviços Oracle são executados como Local System/Service
Solução 2
O caminho que eu estava tentando c:\app\oracle\admin\pldb\dpdump
parecia estar bloqueado pela Oracle, então optei por c:\app\ptmp
e tudo parecia funcionar bem para mim... não sei por quê.
Outras dicas
Parece que a gravação no diretório está falhando, mas no nível do sistema operacional.
O usuário do sistema operacional que executa o impdp tem permissões de sistema operacional para gravar no diretório?