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] > > > > > > > > > > > > > > >