sexta-feira, 23 de maio de 2014

IMPDP - import of dump

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!