Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Oliveira

Erro no EXP

Recommended Posts

Bom dia a todos!Estou com um problema na exportação full do meu banco.os seguintes erros ocorrem:EXP-00056: ORACLE error 4063 encounteredORA-04063: package body "XDB.DBMS_XDBZ0" has errorsORA-06508: PL/SQL: could not find program unit being called: "XDB.DBMS_XDBZ0"ORA-06512: at "XDB.DBMS_XDBUTIL_INT", line 65ORA-06512: at line 1EXP-00056: ORACLE error 4063 encounteredORA-04063: package body "XDB.DBMS_XDBZ0" has errorsORA-06508: PL/SQL: could not find program unit being called: "XDB.DBMS_XDBZ0"ORA-06512: at "XDB.DBMS_XDBUTIL_INT", line 65ORA-06512: at line 1EXP-00000: Export terminated unsuccessfully...Aparentemente o arquivo dmp até é gerado com o tamanho certo, e consigo fazer importação de tabelas deste arquivo, mas dá alguns erros também na importação.Já olhei as packages citadas nos erros e estão com status VALID na dba_objects, porém as procedures das packages em seus bodys não têm conteudo, apenas está escrito /* Source is wrapped */eu teria que rodar algum script lá do $ORACLE_HOME/rdbms/admin ??ou não?O que devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que ver se procedures com WRAP podem prejudicar a exportação!!!! Qual versão do Oracle que está utilizando? Abraços, :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que ver se procedures com WRAP podem prejudicar a exportação!!!! Qual versão do Oracle que está utilizando? Abraços, :mellow:

Desculpe, mas não entendo bem no que implica os "WRAP's" nas procedures. Não deveria haver o código da procedure? Por que constam estes "WRAP's", o que significa a existencia deles?Estou utilizando o 10g release 2. O mais intrigante, pra mim pelo menos, é que de uma estação windows pelo dos consigo fazer o exp full sem quaisquer problemas.O problema só ocorre quando faço o exp num servidor solaris 9, onde coloquei o exp num script do crontab. E mesmo rodando o exp manualmente no solaris o erro ocorre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

WRAP é um método de segurança para blocos em PL/SQL do Oracle, é gerado um código hexadecimal para proteger o código, por isso exibe com WRAPPED.

 

Leia mais sobre WRAPPER aqui.

 

Agora, engraçado no WINDOWS Funcionar e no Solaris não.

 

Você executou o EXP pelo seu CLIENT (Windows) e diretamente no servidor (SOLARIS) ocorreu erro com esses pacotes, a síntase foi a mesma, poste como você executou!!!

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, WRAP é um método de segurança para blocos em PL/SQL do Oracle, é gerado um código hexadecimal para proteger o código, por isso exibe com WRAPPED. Leia mais sobre WRAPPER aqui. Agora, engraçado no WINDOWS Funcionar e no Solaris não. Você executou o EXP pelo seu CLIENT (Windows) e diretamente no servidor (SOLARIS) ocorreu erro com esses pacotes, a síntase foi a mesma, poste como você executou!!! Abraços, :lol:

Boa tarde,Bem realmente funciona no client Windows e não no Solaris. No windows executo no prompt do DOS simplesmente o comando exp usuario/senha@instancia file=nome_do_arquvi.dmp full=yJá no Solaris estou tentando rodar o script com super user, daí exporto algumas variáveis de ambiente antes de rodar o exp (talvez esteja até faltando exportar alguma, mas não sei qual), abaixo o conteúdo do script que executo no solaris:NLS_LANG=AMERICAN_AMERICA.we8iso8859p1export NLS_LANGORACLE_HOME=/oracle/product/9.2export ORACLE_HOMEPATH=/usr/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/local:/usr/openwin/bin:/usr/local/bin:.export PATHLD_LIBRARY_PATH=$ORACLE_HOME/libORACLE_BASE=/dadosCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlibORACLE_SID=NOME_DA_INSTANCIAexport LD_LIBRARY_PATH ORACLE_BASE CLASSPATH ORACLE_SIDhora=`date | cut -c 12-13`file=CAMINHO_COMPLETO/`date +"%y%m%d%H"`.dmplog=CAMINHO_COMPLETO/log/$ORACLE_SID`date +"%y%m%d%H%M%S"`.logexport file logexp parfile=/dados/scripts/EXTDMZ/parfile.paro parfile traz o seguinte conteúdo:userid=usuario/senha@instanciafile=$filefull=ylog=$logconsistent=Ybuffer=5000000compress=nps: Li a matéria sobre Wrapper, interessante e me foi muito útil, obrigado! Enviarei em novo post algumas duvidas que me restaram.Agradeço muito,Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre,

 

Tu pode realizar alguns concertos no scripts, porém, primeiramente check algumas coisas como?

 

O ORACLE_HOME é este mesmo? /oracle/product/9.2, Geralmente é 9.2.0, 8.1.7, 10.0.1 ...

 

Esqueceu de EXPORTAR o ORACLE_SID no script!

 

No seu PARFILE não precisa passar @Instancia, pois você já está exportando o $ORACLE_SID no shell.

No mesmo parfile retire o parametro consistent=y e compress=n para testes.

 

Veja como está as configurações de ambiente do Solaris, para isso escreva: env

 

Depois:

 

echo $ORACLE_BASE

echo $ORACLE_SID

echo $ORACLE_HOME

echo $file

echo $log

 

E veja se está tudo certo! Todos os caminhos e tudo mais.

 

Execute o exp parfile=/dados/scripts/EXTDMZ/parfile.par novamente e acompanhe com tail no log.

 

Não precisa executar como ROOT, execute tudo com o usuário ORACLE.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre,

 

Tu pode realizar alguns concertos no scripts, porém, primeiramente check algumas coisas como?

 

O ORACLE_HOME é este mesmo? /oracle/product/9.2, Geralmente é 9.2.0, 8.1.7, 10.0.1 ...

 

Esqueceu de EXPORTAR o ORACLE_SID no script!

 

No seu PARFILE não precisa passar @Instancia, pois você já está exportando o $ORACLE_SID no shell.

No mesmo parfile retire o parametro consistent=y e compress=n para testes.

 

Veja como está as configurações de ambiente do Solaris, para isso escreva: env

 

Depois:

 

echo $ORACLE_BASE

echo $ORACLE_SID

echo $ORACLE_HOME

echo $file

echo $log

 

E veja se está tudo certo! Todos os caminhos e tudo mais.

 

Execute o exp parfile=/dados/scripts/EXTDMZ/parfile.par novamente e acompanhe com tail no log.

 

Não precisa executar como ROOT, execute tudo com o usuário ORACLE.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Beleza...deu certinho aqui. Vou rodar com o usuario ORACLE, mesmo. Chequei as variaveis de ambiente e fiz as alterações no parfile...funcionou beleza!

 

muito obrigado,

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.