Nesse post quero tratar de um problema que enfrentei com o Oracle.
Tive que atualizar meus dados a partir de um arquivo dump enviado pelo cliente, isso é uma atividade normal no inicio dos projetos.
Podemos fazer pelo Oracle Enterprise Manager ou direto pela linha de comando.
Pela linha de comando a query é:
impdp use/senha directory=IMPORT_DIR \ dumpfile= nome do dumpfile \ logfile= nome do logfile;
Onde:
IMPORT_DIR: Diretório onde o arquivo .dmp esta salva
dumpfile: Nome do arquivo
logfile: Nome do arquivo de log ( este deve estar na mesma pasta que o arquivo .dmp)
Não é possível realizar o import como usuário SYS ou SYSDBA temos que criar um usuário especifico para import com acesso ilimitado na tablespace USERS.
O meu problema foi que dessa vez esse comando não funcionou e deu o erro abaixo:
UDI - 31626: OPERATION GENERATEX ORALCE ERROR 361626
ORA - 31626: job does not exist
ORA - 06512: AT "SYS.DBMS_SYS_DATAPUMP", line 1137
ORA - 06512: AT "SYS.DBMS_SYS_DATAPUMP", line 3414
ORA - 06512: AT "SYS.DBMS_SYS_DATAPUMP", line 4593
ORA - 06512: AT line 1
Procurei por esse erro em vários fóruns e infelizmente demorei para encontrar a solução principalmente porque a solução foi justamente a combinação de algumas respostas, o primeiro passo para a solução é verificar se o seu usuário de import tem permissão no SYS.DBMS_SYS_DATAPUMP,caso ele já tenha permissão e esteja tudo OK com o usuário ( senha OK, acesso a tablespace USERS OK), temos que recriar a SYS.DBMS_SYS_DATAPUMP.
Recriando o SYS.DBMS_SYS_DATAPUMP no Oracle 11g
Primeiro passo: rodar Catproc.sql
SQL >@ $ORACLE_HOME/rdbms/admin/catproc.sql
Segundo passo: se necessário recompilar os objetos inválidos
SQL >@ $ORACLE_HOME/rdbms/admin/utlrp.sql
Esses comandos levaram um tempo para executar, quando concluíram foi só rodar o impdp novamente.
Nenhum comentário:
Postar um comentário
Deixe aqui sua opinião, duvida ou sugestão!