Chiappa, o link do askton não está abrindo, vc poderia confirmar por gentileza. De qualquer forma estou checando nos docs o uso do comando RESIZE. Vlw. Paulo.
________________________________ De: J. Laurindo Chiappa <jlchia...@yahoo.com.br> Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 29 de Agosto de 2012 18:53 Assunto: [oracle_br] Re: espaço database Bom, primeiro vc Não Diz mas IMAGINO que não estás usando ASM, nem raw, nem qquer solução proprietário/invisível ao SO : deve ser um cooked filesystem ou similar, portanto é o SO que manipula o espaço, certo ? Muito bem, nesse cenário quando vc diz "realocar espaço", imagino que o que vc quer é REMOVER dos datafiles os extents (pedaços de espaço) hoje sem uso, para os devolver ao SO e portanto permitir que esses espaços seja realocado para Outros datafiles/tablespaces, correto ???? Atenção para o importante detalhe que, se os próximos INSERTs que vão ocorrer no sistema forem em tabelas que usam A MESMA tablespace aonde vc tem espaço livre hoje, os extents vazios VÃO SER SIM REUSADOS naturalmente, okdoc ? Não faz o MENOR SENTIDO vc ter o trabalho de de-alocar se o espaço VAI ser usado brevemente.... Muito bem : caso vc chegou até aqui, realmente vc precisa/quer devolver espaço pro SO, tem certeza que a tablespace que está no momento vazia *** não *** vai mais ser usada brevemente, ok ? O procedimento em si é simples, e pode ser : a) caso a(s) tablespace(s) de onde vc dropou/deletou/removeu objs ficou/ficaram totalmente vazia(s), vc pode dar um DROP TAbLESPACE nomedatablespace INCLUDING CONTENTS AND DATAFILES, que o espaço volta totalmente para o SO ou b) se vc tem pouquinhos objetos, e de tamanho pequeno/médio sobrando na tablespace, considere a possibilidade de os mover/recriar em outra tablespace (ALTER TABLE nnn MOVE / ALTER INDEX xxx REBUILD / DBMS_REDEFINE, drop+recriação dos objetos, etc) , livrando a tablespace original que aí pode ser dropada como acima ou c) vc pode devolver o espaço segmento por segmento, é o comando SHRINK, veja a doc para alter table xxx shrink space compact - REPARE que isso implica em movimentação de dados, então Exige que a tabela esteja com row movement enable ou d) o mais efetivo e fácil, que não tem nenhum pré-req, não implica em nenhum tipo de overhead, etc : é DIMINUIR o tamanho dos datafiles, o que libera o espaço diminuído de volta para o SO : o comando é RESIZE, além da doc Oracle pra tua versão, veja em http://asktomboraclebcom/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1388955800346448370 que a thread discute bastante os detalhes, E te dá um útil script paera calcular o máximo que vc pode diminuir - isto ocorre pelo seguinte : imagine que vc tem num datafile dados para a tabela A, a tabela b e a tabela C (cada extent de cada segmento representados respectivamente por a, b e c) e algum espaço não-usado, representado por pontinhos : aaaaaaaaaaaaaaabbbbbbbbbbbbbbbcccccccccc....... se vc deletar os dados todos de B ou dropar B, o que vc vai ter é : aaaaaaaaaaaaaaa...............cccccccccc....... repare que há dados acima do espaço livre interno, então vc Só Consegue fazer RESIZE até o início do espaço livre externo, ie, imediatamente após o último espaço usado pela tabela C, certo ? Nesse caso, se esse espaço entre A e C realmente é significativo, vc precisa realocar A e C, com qquer das opções em b) ou c) , ok ? []s Chiappa OBS : que fique Claro, a presença de espaços em branco entre segmentos dentro de um datafile ******* NÂO ******* interfere em performance, NÂO é por si só considerado Fragmnentação porque o RDBMS Oracle ****** NUNCA ******* lê um datafile do começo ao fim, varrendo-o sequencialmente , ok ??? O I/O num datafile Oracle OU é bloco-a-bloco (se for acesso via index, tipicamente) OU é por extent multiblock (casos de table-scan/index full scan) - Nunca nenhum desses implica el ler datafile do começo ao fim, E extents nunca tem "buracos" no meio, são sempre contíguos, então REPITO, não pega NADA vezes NADA para performance a situação acima representada.... --- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto <paulopcto2002@...> escreveu > > Prezados, preciso realocar os espaços no oracle, tabela, ou tablespace ou > base toda, para recuperar espaço dos objetos deletados e que já limpei da > lixeira. > > Alguém tem algum procedimento ? > > Atenciosamente, > > Paulo. > > > ________________________________ > De: Paulo Couto <paulopcto2002@...> > Para: "mailto:oracle_br%40yahoogrupos.com.br" > <mailto:oracle_br%40yahoogrupos.com.br> > Enviadas: Terça-feira, 28 de Agosto de 2012 14:13 > Assunto: Re: [oracle_br] espaço database > > > > > Rodrigo, realmente haviam objetos na lixeira, então executei o purge para > limpar. > > Uma outra dúvida, como faço para recuperar o espaço físico quando eliminamos > objetos na base uma vez que já está alocado no datafile ? > > Att, > > Paulo. > > > ________________________________ > De: Rodrigo Mufalani <mailto:rodrigo%40mufalani.com.br> > Para: mailto:oracle_br%40yahoogrupos.com.br > Enviadas: Terça-feira, 28 de Agosto de 2012 13:39 > Assunto: Re: [oracle_br] espaço database > > > > > > Boa tarde Paulo, > > Grandes chances de seus objetos ainda estarem na recyclebin (e com isso > você os está backupeando). Verifique se há objetos com o select abaixo: > > SQL> > select * from dba_recyclebin; > > Ou verifique no log do backup se há objetos com a nomenclatura > parecida com essa "BIN$xu8L4RpVXIDgQAAKAQdCeg==$0" > > logue-se como sys e emita o > comando: > > SQL> purge dba_recyclebin; > > DBA Recyclebin purged. > > Atenciosamente, > > Rodrigo Mufalani > Oracle Ace Member > http://www.mufalani.com.br/ > > Amigos, fiz uma > limpeza de alguns schema owners antigos e pela soma dos segments eliminou > mais de 5 GB de dados. > > Porém percebi que no backup lógico que fazemos pelo EXP não diminuiu. > > Eu > já esperava que no backup fisico do RMAN não diminuisse mas que no lógico > deveria dimuir. > > Alguém tem idéia de porque não diminuiu e como faço para reorganizar e > recuperar o espaço eliminado na base ? > > Abs, > > Paulo. > > [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] > > > > > [As partes desta mensagem que não continham texto foram removidas] > [As partes desta mensagem que não continham texto foram removidas]