pow divide ai esse premio com galera do forum chiappa =)

pra 9i vou fazer

-desabilitar as constraints
-truncar as tabelas
-importar 
-habilitar as constraints
-verificar as constraints
-verificar indices

select 'alter table '||owner||'.'||table_name||' disable constraint '|| 
constraint_name||';' 
from dba_constraints 
where owner='HR'


select 'truncate table '||owner||'.'||table_name||';' 
from dba_tables
where owner='HR'


imp system/*** file=expHR.dmp fromuser=HR touser=HR  ignore=y statistics=none 
rows=y constraints=n


select 'alter table '||owner||'.'||table_name||' enable constraint '|| 
constraint_name||';' 
from dba_constraints 
where owner='HR'


select i.index_name,i.index_type,i.table_name,i.status
from dba_indexes i
where i.owner = 'HR'




--- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@...> 
escreveu
>
>   Opa, blz - agora é só calibrar a bola de cristal para adivinhar números - 
> nem precisa muitos, só uma certa sequência de seis :) ...
>   
>   Sim, dá uma estudada geral sobre cláusulas de storage (é relevante 
> principalmente se vc tem tabelas com volumes Realmente grandes, onde qquer 
> espaço a mais reservado para futuros UPDATEs mas não usado efetivamente pode 
> levar a desperdício significativo, e/ou se vc tem altíssimas concorrências 
> num bloco e aí caberia otimização de freelists e initrans/maxtrans) , sobre 
> ASSM (que imho é relevante se vc é OLTP e não pode dimensionar precisamente 
> pctused E freelists), ponha em ação o seu conhecimento sobre a utilização das 
> tabelas (por exemplo, compactando as de histórico, particionando as 
> apropriadas, especificando paralelismo naquelas que vc sabe que sofrem scans, 
> etc) ...
>   
>   Só um complemento : no exp/imp tradicional (que é o que vc vai fazer para 
> trazer dados do 9i, imagino), para que os dados entrem mesmo as tabelas já 
> existindo (imitando o TABLE_EXISTS do datapump), o que vc pode fazer é na 
> hora do import especificar o parâmetro IGNORE=Y , assim a importação não vai 
> parar quando o import tentar recriar a tabela que já existirá vazia .....
> 
>     []s
> 
>      Chiappa
> 
> 
> --- Em oracle_br@yahoogrupos.com.br, "netodba" <neto.longhi@> escreveu
> >
> > 
> > 
> > 
> > 
> > 
> > Pow pessoal queria agradecer muito a ajuda de vcs. Acertaram em cheio.
> > 
> > O erro eram os grants de sinonimos e tabela do SYS usados nas procedures. 
> > No export da instancia 9i apenas veio os grants dados a roles, e nao 
> > diretamente ao usuario.
> > 
> > Eu demorei pra lembrar que pra se usar esses sinonimos dentro de procedures 
> > tem que ser dado privilegio diretamente ao usuario.
> > 
> > ou seja
> > 
> > fora da procedure; select * from <sinonimo> funcioava
> > dentro da procedure não funcionava.
> > 
> > pra futuras duvidas de outros membros do grupo
> > 
> > SELECT owner, table_name, privilege
> > FROM dba_tab_privs
> > WHERE grantee=UPPER('<OWNER>')
> > ORDER BY 1,2,3;
> > 
> > select 'grant '|| privilege ||' on '|| owner||'.'||table_name||' to 
> > <OWNER>;' 
> > from dba_tab_privs
> > WHERE grantee=UPPER('<OWNER>')
> > 
> > 
> > e chiappa pensei sim no que vc disse, otimizei as tablespaces, mas em se 
> > tratando de cláusulas de storage e PCTFREE/PCTUSED infelizmente nao tenho 
> > muito conhecimento por isso nao ajustei isso. Mas vou reler agora mesmo 
> > esses assuntos.
> > 
> > E obrigado novamente ao pessoal da lista, fiz testes e vou usar 
> > TABLE_EXISTS_ACTION=REPLACE.
> > 
> > 
> > --- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@> 
> > escreveu
> > >
> > >   Obs adicional : Neto, em outras msgs eu e outros colegas comentamos 
> > > sobre os erros, e imagino que vc vai tomar as ações sugeridas, mas um 
> > > ponto adicional, que não sei se vc pensou - quando ao invés de migrar 
> > > efetivamente um banco (MIGRAÇÃO em termos corretos é o que acontece 
> > > quando vc tem um STARTUP MIGRATE, não é o seu caso) se faz exportação e 
> > > importação de dados, via de regra eu costumo Aproveitar essa janela, e o 
> > > próprio fato dos objetos serem reconstruídos, para OTIMIZAR tablespaces, 
> > > cláusulas de storage, usar (onde julgar viável) eventuais novas features 
> > > como ASSM (ou ao contrário usar alocação manual E informar 
> > > PCTFREE/PCTUSED onde sei que é preciso), aumentar ou diminuir extent 
> > > sizes , enfim, recriar Otimizando os dados..... Vc Pensou nisso ???? É a 
> > > Oportunidade que vc tem para fazer isso, não pense que "ah, depois dos 
> > > dados criados no novo banco eu peço nova janela e altero isso", a minha 
> > > Experiência diz que quando essas coisas não são feitas na hora da 
> > > recriação, na prática não são feitas é nunca....
> > >    Aliás, Essa é a vantagem principal a meu ver sobre Upgrades feitos 
> > > recriando os dados contra upgrades de versão com migração de banco - 
> > > quando vc migra a estrutura física interna absolutamente Não Muda, 
> > > enquanto que se vc recria os dados vc tem a oportunidade de os recriar 
> > > com eventuais Otimizações físicas...
> > >   
> > >    []s
> > >    
> > >      Chiappa
> > >    
> > > 
> > > --- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@> 
> > > escreveu
> > > >
> > > >   Sim, tem que descobrir o que está acontecendo, e o meu ** palpitão ** 
> > > > é : como o Neto fez export de schemas, os eventuais 
> > > > sinônimos/grants/objetos públicos (óbvio) não foram incluídos, aí esses 
> > > > objetos que estão inválidos tem Dependências desses 
> > > > sinônimos/grants/objetos públicos que não existem.... Mas com certeza 
> > > > NÃo é o caso de tentar se adivinhar, o procedimento para se descobrir 
> > > > EXATAMENTE a causa existe e é Muito, mas Muito Simples, no-brainer 
> > > > mesmo : basta conectar como o owner e tentar se recompilar um dos 
> > > > objetos inválidos e depois do insucesso se consulta os erros que 
> > > > impedem a compilação com um SELECT * FROM DBA_ERRORS WHERE 
> > > > OWNER='nomedoowner' and OBJECT_NAME='nomedoobjeto' que vc vai saber 
> > > > DIREITINHO o que é....
> > > > 
> > > >  []s
> > > > 
> > > >    Chiappa
> > > > 
> > > >  OBS : eu Sempre fiz esse tipo de tarefa digitando um ALTER 
> > > > tipodoobjeto invalido nomedoobjeto COMPILE; no sqlplus - Não Sei se 
> > > > essas GUIzinhas tipo PL/SQL Developer quando vc clicka e pede pra 
> > > > compilar se é Realmente esse o comando que elas enviam pro banco, nem 
> > > > se fazem nada extra....
> > > > 
> > > > 
> > > > 
> > > > --- Em oracle_br@yahoogrupos.com.br, "Fernando Franquini 'capin'" 
> > > > <fernando.franquini@> escreveu
> > > > >
> > > > > Concordo com o Vitor, tem que entender porque não compila.
> > > > > Se fosse alguma coisa de mudança que ficou em desuso na versão 9i que 
> > > > > não
> > > > > tem na 11g blz, mas se não for isso é bom investigar o que está 
> > > > > acontecendo.
> > > > > Uso muito o P SQL Developer para isso e SEMPRE funciona.
> > > > > Quando não funciona é porque realmente a package/procedre teve 
> > > > > alterações e
> > > > > está errada.
> > > > > 
> > > > > Att,
> > > > > capin
> > > > > 
> > > > > 2012/11/8 Vitor Jr. <vitorjr81@>
> > > > > 
> > > > > > Mas PORQUE estão inválidos?
> > > > > > Tente compilar um objeto e depois execute um "show error"
> > > > > > Qual erro aparece? Está concedendo as permissões de SYS do banco 
> > > > > > origem no
> > > > > > banco destino?
> > > > > > Ex.: Owner A na origem tem grant na V$SESSION, possui um objeto que 
> > > > > > faz
> > > > > > select nessa view. Está concedendo esse grant na base de destino?
> > > > > >
> > > > > >
> > > > > > Att,/Regards,
> > > > > >
> > > > > >
> > > > > > Vitor Jr.
> > > > > > Infraestrutura / Infrastructure Team
> > > > > > Oracle 11g DBA Certified Professional - OCP
> > > > > > Oracle Certified Expert, Oracle Real Application Clusters 11g and 
> > > > > > Grid
> > > > > > Infrastructure Administrator - OCE
> > > > > > Oracle Database 11g Performance Tuning Certified Expert - OCE
> > > > > > Oracle Exadata 11g Certified Implementation Specialist
> > > > > > Oracle Certified Associate, MySQL 5
> > > > > > mail, gtalk e msn: vitorjr81@
> > > > > > http://certificacaobd.com.br/
> > > > > > skype: vjunior1981
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 08/11/2012, at 11:14, "netodba" <neto.longhi@> wrote:
> > > > > >
> > > > > > > Fernando tentei recompilar os objetos invalidos pelo PL SQL 
> > > > > > > Developer e
> > > > > > não consegui, por esse motivo que tenho preocupação.
> > > > > > >
> > > > > > > Luis, não estou fazendo impdp full, mas apenas dos schemas das
> > > > > > aplicações, ou seja não mexo no SYS, a base de dados ja ta criada, 
> > > > > > com
> > > > > > todas as tablespaces.
> > > > > > >
> > > > > > > se eu fizer:
> > > > > > >
> > > > > > > impdp system/senha directory=*** dumpfile=*** schemas=HR
> > > > > > TABLE_EXISTS_ACTION=REPLACE
> > > > > > >
> > > > > > > ele irá dropar e recriar as tabelas com os indices e constraints 
> > > > > > > né?
> > > > > > >
> > > > > > > como eu faria isso no imp pra instancia 9i??
> > > > > > >
> > > > > > > imp system/*** file=*** fromuser=HR touser=HR ignore=y data_only=y
> > > > > > >
> > > > > > > ??
> > > > > > >
> > > > > > > --- Em oracle_br@yahoogrupos.com.br, Luis Freitas <lfreitas34@>
> > > > > > escreveu
> > > > > > > >
> > > > > > > > Neto,
> > > > > > > >
> > > > > > > >     Quando fiz isso normalmente mantinha os usuarios e removia 
> > > > > > > > todos
> > > > > > os objetos dentro deles.
> > > > > > > >
> > > > > > > >    Depois de remover os objetos é preciso limpar a recyclebin, 
> > > > > > > > senão o
> > > > > > espaço não é liberado.
> > > > > > > >
> > > > > > > >     Normalmente os problemas de objetos invalidos que encontrei 
> > > > > > > > eram
> > > > > > devido a grants faltando para os schemas.
> > > > > > > >
> > > > > > > >    O exp/imp não copia grants de objetos que não foram 
> > > > > > > > importados, por
> > > > > > exemplo, mesmo em um full import grants em views do sys ou grants de
> > > > > > sistema não são recriados. Verifique na dba_sys_privs, 
> > > > > > dba_role_privs e
> > > > > > dba_tab_privs where owner = 'SYS', na base de origem, e copie os 
> > > > > > grants que
> > > > > > estiverem faltando.
> > > > > > > >
> > > > > > > >     O proposito de manter os usuarios e apagar apenas os 
> > > > > > > > objetos é
> > > > > > justamente manter estes grants, desta forma no proximo import devem 
> > > > > > ter bem
> > > > > > menos objetos invalidos.
> > > > > > > >
> > > > > > > >     Uma coisa que acontece com menos frequencia é ter alguma 
> > > > > > > > diferença
> > > > > > no PL/SQL da versão nova. Por exemplo um sql invalido que era 
> > > > > > aceito na
> > > > > > versão antiga devido a bugs, mas não funciona mais na versão nova. 
> > > > > > Nesse
> > > > > > caso é preciso corrigir os objetos. Se for uma aplicação "pacote" o 
> > > > > > proprio
> > > > > > fornecedor deve ter um patch para corrigir estes casos.
> > > > > > > >
> > > > > > > >    Apenas truncar as tabelas não é uma boa idéia, pois elas vão 
> > > > > > > > manter
> > > > > > os índicies, e se forem grandes o proximo import vai demorar muito 
> > > > > > mais
> > > > > > tempo por causa dos indices. Voce precisa remover os indices e 
> > > > > > recria
> > > > > > manualmente, o imp não vai recriar mas pode gerar um script com o 
> > > > > > show=yes.
> > > > > > Para o impdp há um parametro para substitituir as tabelas, e nesse 
> > > > > > caso ele
> > > > > > mesmo "dropa" as tabelas e recria.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Atc,
> > > > > > > > Luis
> > > > > > > >
> > > > > > > >
> > > > > > > > ________________________________
> > > > > > > > From: Fernando Franquini 'capin' <fernando.franquini@>
> > > > > > > > To: oracle_br@yahoogrupos.com.br
> > > > > > > > Sent: Thursday, November 8, 2012 1:58 AM
> > > > > > > > Subject: Re: [oracle_br] Migração
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Neto,
> > > > > > > >
> > > > > > > > se seu problema foi somente compilar os objetos acredito que 
> > > > > > > > pode
> > > > > > resolver
> > > > > > > > isso através do PL SQL Developer.
> > > > > > > > Mas se teve correção, você pode exportar todos os objetos 
> > > > > > > > alterados
> > > > > > > > (procedures, triggers, packages e views) e depois subi-las 
> > > > > > > > novamente.
> > > > > > > >
> > > > > > > > Mas creio que da forma que você vai fazer também está ok.
> > > > > > > >
> > > > > > > > Att,
> > > > > > > > capin
> > > > > > > >
> > > > > > > > 2012/11/7 netodba <neto.longhi@>
> > > > > > > >
> > > > > > > > > Pessoal, preciso de uma luz.
> > > > > > > > >
> > > > > > > > > Estou migrando 2 bases de produção, uma 10g e outra 9i pra 
> > > > > > > > > uma unica
> > > > > > base
> > > > > > > > > 11g.
> > > > > > > > >
> > > > > > > > > Bem, fiz a migração de teste usando impdp pra 10g e imp pra 
> > > > > > > > > 9i, a
> > > > > > migração
> > > > > > > > > de teste foi feita direta no servidor que substituirá o 
> > > > > > > > > antigo de
> > > > > > produção.
> > > > > > > > > Agora alguns objetos dos schemas importados ficaram 
> > > > > > > > > inválidos, não
> > > > > > rodei o
> > > > > > > > > utlrp.sql pra recompilar os objetos inválidos. A equipe de
> > > > > > desenvolvimento
> > > > > > > > > esta fazendo os testes e até agora sucesso.
> > > > > > > > >
> > > > > > > > > Como eu vou migrar novamente, pra virar ambiente de produção, 
> > > > > > > > > vou
> > > > > > ter que
> > > > > > > > > usar os mesmos schemas, só que eu não acho que dropar e 
> > > > > > > > > recriar os
> > > > > > usuarios
> > > > > > > > > seja a melhor solução, justamente pelos objetos invalidos. 
> > > > > > > > > Estou
> > > > > > pensando
> > > > > > > > > em truncar as mais de 300 tabelas e fazer o impdp com
> > > > > > content=data_only e
> > > > > > > > > imp com rows=Y e ignore=y
> > > > > > > > >
> > > > > > > > > o que vcs acham disso??? e como vcs fariam??
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ------------------------------------
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ----------------------------------------------------------
> > > > > > > > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso 
> > > > > > > > > >público e de
> > > > > > > > > inteira responsabilidade de seus remetentes.
> > > > > > > > > Acesse: 
> > > > > > > > > http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > > > > > > > >
> > > > > > > > > ----------------------------------------------------------
> > > > > > > > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » 
> > > > > > > > > >Package »
> > > > > > > > > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU 
> > > > > > > > > PROPRIO
> > > > > > ESPAÇO!
> > > > > > > > > VISITE: http://www.oraclebr.com.br/
> > > > > > > > > ----------------------------------------------------------
> > > > > > > > > Links do Yahoo! Grupos
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Fernando Franquini - Capin
> > > > > > > > Graduado Bacharel em Ciencias da Computação - UFSC
> > > > > > > > Analista de Sistemas e de Banco de Dados / DBA
> > > > > > > > Contatos: 048.9902.4047 - Florianópolis - SC - Brasil
> > > > > > > > <http://franquini.wordpress.com/>
> > > > > > > > http://certificacaobd.com.br/
> > > > > > > > http://br.linkedin.com/in/capin
> > > > > > > > http://wf5.com.br/
> > > > > > > >
> > > > > > > > [As partes desta mensagem que não continham texto foram 
> > > > > > > > removidas]
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > [As partes desta mensagem que não continham texto foram 
> > > > > > > > removidas]
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > > >
> > > > > >
> > > > > >
> > > > > > ------------------------------------
> > > > > >
> > > > > >
> > > > > > --------------------------------------------------------------------------------------------------------------------------
> > > > > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > > > > > inteira responsabilidade de seus remetentes.
> > > > > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > > > > >
> > > > > > --------------------------------------------------------------------------------------------------------------------------
> > > > > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> > > > > > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO 
> > > > > > ESPAÇO!
> > > > > > VISITE: http://www.oraclebr.com.br/
> > > > > > ------------------------------------------------------------------------------------------------------------------------
> > > > > > Links do Yahoo! Grupos
> > > > > >
> > > > > >
> > > > > >
> > > > > 
> > > > > 
> > > > > -- 
> > > > > Fernando Franquini - Capin
> > > > > Graduado Bacharel em Ciencias da Computação - UFSC
> > > > > Analista de Sistemas e de Banco de Dados / DBA
> > > > > Contatos: 048.9902.4047  - Florianópolis - SC - Brasil
> > > > > <http://franquini.wordpress.com/>
> > > > > http://certificacaobd.com.br/
> > > > > http://br.linkedin.com/in/capin
> > > > > http://wf5.com.br/
> > > > > 
> > > > > 
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > >
> > >
> >
>


Responder a