Chiappa, segue resposta.
a) Não é provável. A nota também fala para versões Enterprise Edition b) Essa opção também só para Enterprise Edition c) Não testei. Vou ver uma janela para fazer os testes d) Tenho certeza que não tinha transações abertas. Pois depois de fechar as aplicações, eu tirei a instância do ar e subi novamente, verifiquei a área de UNDO e não tinha nada. Table Size: 3.1GB Index Size: 1.4GB De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de J. Laurindo Chiappa Enviada em: segunda-feira, 9 de setembro de 2013 13:53 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: alter index shrink space Opa : eu tinha respondido mas ao que parece a internet comeu minha resposta : então estou re-enviando, e desde já me desculpo com quem receber 2x ... Bom, dando de barato que vc já verificou e **** REALMENTE PROVOU **** que precisa da movimentação (por exemplo, cfrme http://richardfoote.wordpress.com/2008/02/08/index-rebuild-vs-coalesce-vs-sh rink-space-pigs-3-different-ones/ a sua aplicação deletou uma porção Significatica de linhas, cujos valores ** não ** vão ser reusados, talvez porque sequenciais/artificiais, E o acesso não é single-row, ou coisa do tipo), NÂO estando portanto seguindo algum 'tutorial' na base do achômetro e/ou da autoridade tipo eu-sou-o-expert (que é Muito Comum quando se fala de 'fragmentação', é o tipo do tópico que todo mundo Acha que sabe mas na prática muitos só perpetuam mitos furados), aí temos que SIM, qualquer tipo de movimentação de blocos VAI gerar algum UNDO e algum REDO, nem que seja para as tabelas internas do RDBMS, que são SIM em sua maioria protegidas / transacionadas do mesmo modo que as tabelas de usuário... Aí eu digo : a) vc deveria checar no Suporte Oracle por possibilidades como o Bug 3888229 : HUGE REDO AND UNDO GENERATED DURING A TABLE SHRINK OPERATION , e similares : não é provável (até dada a antiguidade e a especifidade de plataforma),mas é possível que vc esteja vendo um re-run ...... b) já que vc tem a opção de "fechar todos os aplicativos que acessam a instância", para tentar diminuir o redo vc pode experimentar um INDEX REBUILD NOLOGGING PARALLEL - via de regra isso não interfere grande coisa (até porque a diminuição Efetiva é numa operação de APPEND, que só pode ocorrer em tabelas - índices sempre tem que ser Ordenados fisicamente, não dá pra apendar), mas vale a tentativa c)vc TESTOU as Outras opções de movimentação/reordenação do índice, como COALESCE, além do REBUILD em si, cfrme alguns artigos em http://richardfoote.wordpress.com/category/index-shrink/ do índice ?? E as opções de redefinição da tabela em si (como DBMS_REDEFINE, INSERT /*+ APPEND */, etc) , talvez até numa outra tabela-temporária vazia que depois de dropar a tabela original vc a renomearia ??? Como eu não trabalho com Standard Edition, não faço idéia de quais opções dessa lista estariam vedadas para vc, mas é algo a checar... d) sobre o UNDO especificamente, vc TEM Certeza que não tinha aí nenhuma outra Transação aberta usando o tal índice e/ou a tabela a qual o índice pertence ??? OU AINDA, uma situação COMUNÍSSIMA , será que vc não teria ** OUTRAS TRANSAÇÕES quaisquer ** de modo geral consumindo o UNDO, OU mesmo Transações que acabaram há pouco tempo e portanto ainda não puderam liberar o espaço devido ao RETENTION ainda não cumprido, caso em que (OBVIAMENTE) vc Não teria os 5 GB todos disponíveis para uso ??? QUAL é o tamanho da tabela E do índice, em bytes, por falar nisso ?? DEPENDENDO dessas respostas, talvez a melhor opção seja vc simplesmente temporariamente criar uma nova undo tablespace bem maior, a usar para a movimentação e depois a dropar... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Grupos" <marcio_cbj@...> escreveu > > Bom dia! > > > > Oracle 10.2.0.5 Standard Edition one > > > > Tentei fazer um shrink en um índice, e deu erro no UNDO. O meu UNDO está > com tamanho de 5G, ele estava vazio no momento do shrink, pois antes de > começar tirei a minha instância do ar, e fechei todos os aplicativos que > acessam a instância. > > > > Além de ocupar toda a minha área de UNDO, é gerado muitos archives. Tem > alguma maneira de executar o shrink sem ocupar tanto o UNDO e gerar muitos > archives? > > > > Vi que tem a opção nologging no rebuild online, mas essa feature está apenas > para o EE. Para o Standard One, alguém conhece alguma maneira de fazer os > shrink para corrigir a fragmentação nas minhas tabelas e índices que não > gere muito UNDO? > > > > Grato. >