Senhores, Muitíssimo obrigado a TODOS pelas respostas. Grato! Atenciosamente, Jader Resende de Souza
________________________________ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Marcelo Cauduro Enviada em: segunda-feira, 17 de abril de 2006 14:44 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Re: RES: "Limpar" TableSpaces Perfeito !!! Valeu Chiappa. On 4/17/06, jlchiappa <[EMAIL PROTECTED]> wrote: > > É que pra esse trabalho de liberar espaço quando vc sabe que não vai > mais haver DMLs e a hwm está alta e há muitos espaço em branco que só > seriam re-usados em DMLs , no 10g vc tem a opção de SEGMENT SHRINK, > como mostrado em http://asktom.oracle.com/pls/ask/f? > p=4950:8:::::F4950_P8_DISPLAYID:17312316112393 e documentado nos > manuais 10g, e isso funciona MESMO que o segmento esteja "espalhado" > em vários datafiles da tablespace, nas versões inferiores não tem > acordo, é move ou rebuild do segmento pra depois se poder fazer o > shrink, e se forem muitos datafiles isso é um pouquinho incômodo, é > isso. > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, "Marcelo Cauduro" > <[EMAIL PROTECTED]> escreveu > > > > > Por que vc diz : > > " aí num caso desses é bem mais trabalhoso antes do banco 10g " ? > > > > O que o banco 10g facilita nesse ultimo caso citado ? > > > > > > > > On 4/17/06, jlchiappa <[EMAIL PROTECTED]> wrote: > > > > > > Ederson, deixe-me tentar esclarecer e aumentar aí : na verdade, > é ** > > > MUITO ** fácil vc descobrir o HWM , DESDE que vc conheça os > conceitos > > > a respeito e não vá procurar o que não existe. São eles : > > > > > > a) hwm não é apenas "o ponto na tablespace onde chegou a escrita > de > > > dados", e sim o ponto MAIS ALTO em CADA DATAFILE da tablespace > onde > > > já chegou a escrita de dados ** E ** cujos extents ainda não foram > > > dropados/movidos > > > > > > b) NÃO existe um "hwm da tablespace", e sim UM hwm em CADA > datafile > > > > > > c) dentro dum datafile, o espaço é alocado por extents, extents > são > > > compostos por blocos, e os blocos num datafile são sequenciais, > assim > > > de acordo com o conceito a) , se eu achar o último bloco do extent > > > mais alto, imediatamente acima fica o hwm. > > > > > > Exemplo : > > > > > > [EMAIL PROTECTED]:SQL>create tablespace TS_TESTE datafile 'D:\O9IR2 > \O9IR2 > > > \TS_TESTE_01.DBF' size 100M nologging; > > > > > > [EMAIL PROTECTED]:SQL>select * from dba_tablespaces where > > > tablespace_name='TS_TESTE'; > > > > > > TABLESPACE_NAME BLOCK_SIZE > > > INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS > > > MAX_EXTENTS PCT_INCREASE MIN_EXTLEN STATUS > CONTENTS > > > LOGGING FOR EXTENT_MAN ALLOCATIO PLU SEGMEN > > > ------------------------------ ------------------ ---------------- > -- - > > > ----------------- ------------------ ------------------ ---------- > ---- > > > ---- ------------------ --------- --------- --------- --- -------- > -- - > > > -------- --- ------ > > > TS_TESTE 8192 > > > 65536 1 > > > 2147483645 65536 ONLINE > PERMANENT > > > NOLOGGING NO LOCAL SYSTEM NO MANUAL > > > > > > [EMAIL PROTECTED]:SQL>create table TAB1 tablespace TS_TESTE nologging > as > > > (select * from scott.emp where 1=2); > > > > > > Tabela criada. > > > > > > [EMAIL PROTECTED]:SQL>create table TAB2 tablespace TS_TESTE nologging > as > > > (select * from dba_objects where 1=2); > > > > > > Tabela criada. > > > > > > [EMAIL PROTECTED]:SQL>BEGIN > > > 2 for i in 1..100 loop > > > 3 insert into TAB1 (select * from scott.emp); > > > 4 commit; > > > 5 end loop; > > > 6 END; > > > 7 / > > > > > > Procedimento PL/SQL concluído com sucesso. > > > > > > [EMAIL PROTECTED]:SQL>select owner, SEGMENT_TYPE, SEGMENT_NAME, > > > PARTITION_NAME, file_id, max(block_id) from dba_extents where > > > tablespace_name='TS_TESTE' > > > 2 group by owner, SEGMENT_TYPE, SEGMENT_NAME, PARTITION_NAME, > > > file_id > > > 3* order by file_id, 6 , owner, SEGMENT_TYPE, SEGMENT_NAME, > > > PARTITION_NAME; > > > > > > OWNER SEGMENT_TYPE > > > SEGMENT_NAME > > > PARTITION_NAME FILE_ID MAX > (BLOCK_ID) > > > ---------------- ------------------ ------------------------------ > ---- > > > - ------------------------------ ------------------ -------------- > ---- > > > SYSTEM TABLE > > > TAB2 > > > 2 17 > > > SYSTEM TABLE > > > TAB1 > > > 2 25 > > > > > > > > > ==> no caso o maior block_id já usado nesse tal datafile número > dois > > > (o único da tablespace por enquanto) é o bloco 25, vamos ver > quantos > > > blocos tenho nesse extent a partir desse bloco : > > > > > > [EMAIL PROTECTED]:SQL>select blocks from dba_extents where > > > tablespace_name='TS_TESTE' and file_id=2 and block_id=25; > > > > > > BLOCKS > > > ------------------ > > > 8 > > > > > > OK, a partir do bloco 25 tenho mais 8, em bytes isso fica : > > > > > > [EMAIL PROTECTED]:SQL>select (25+8) * 8192 from dual; > > > > > > (25+8)*8192 > > > ------------------ > > > 270336 > > > > > > o datafile que quero shrinkar (digamos) tem : > > > > > > [EMAIL PROTECTED]:SQL>select * from dba_data_files where > > > tablespace_name='TS_TESTE'; > > > > > > FILE_NAME > > > FILE_ID TABLESPACE_NAME > > > BYTES BLOCKS STATUS RELATIVE_FNO AUT > > > MAXBYTES MAXBLOCKS INCREMENT_BY > > > USER_BYTES USER_BLOCKS > > > ------------------------------------------------------------------ > -- - > > > ----------------- ------------------------------ ----------------- > - -- > > > ---------------- --------- ------------------ --- ---------------- > -- - > > > ----------------- ------------------ ------------------ ---------- > ---- > > > ---- > > > D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF > > > 2 TS_TESTE 104857600 > > > 12800 AVAILABLE 2 NO > > > 0 0 0 > > > 104792064 12792 > > > > > > ==> inclusive, veja que tenho BYTES=104857600 e > USER_BYTES=104792064, > > > por que ?? A diferença de 64 Kb é o BITMAP das tablespaces LMT, > como > > > é o caso da minha,algo que o pessoal SEMPRE parecer esquecer de > levar > > > em conta... No caso, tenho 104792064 bytes de tamanho efetivo, só > uso > > > 270336 bytes, do byte 270337 em diante poderia shrinkar : > > > > > > [EMAIL PROTECTED]:SQL>select 65536 + 270336 from dual; > > > > > > 65536+270336 > > > ------------------ > > > 335872 > > > > > > [EMAIL PROTECTED]:SQL>alter database datafile 'D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF' resize 335872; > > > > > > Banco de dados alterado. > > > > > > [EMAIL PROTECTED]:SQL>select * from dba_data_files where > > > tablespace_name='TS_TESTE'; > > > > > > FILE_NAME > > > FILE_ID TABLESPACE_NAME > > > BYTES BLOCKS STATUS RELATIVE_FNO AUT > > > MAXBYTES MAXBLOCKS INCREMENT_BY > > > USER_BYTES USER_BLOCKS > > > ------------------------------------------------------------------ > -- - > > > ----------------- ------------------------------ ----------------- > - -- > > > ---------------- --------- ------------------ --- ---------------- > -- - > > > ----------------- ------------------ ------------------ ---------- > ---- > > > ---- > > > D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF > > > 2 TS_TESTE 335872 > > > 41 AVAILABLE 2 NO > > > 0 0 0 > > > 262144 32 > > > > > > [EMAIL PROTECTED]:SQL> > > > > > > ==> esse é o limite, se no último extent, na parte que não tem > dados, > > > eu tentar diminuir mais, serei desprezado : > > > > > > [EMAIL PROTECTED]:SQL>alter database datafile 'D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF' resize 335871; > > > > > > Banco de dados alterado. > > > > > > [EMAIL PROTECTED]:SQL>alter database datafile 'D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF' resize 335870; > > > > > > Banco de dados alterado. > > > > > > [EMAIL PROTECTED]:SQL>select * from dba_data_files where > > > tablespace_name='TS_TESTE'; > > > > > > FILE_NAME > > > FILE_ID TABLESPACE_NAME > > > BYTES BLOCKS STATUS RELATIVE_FNO AUT > > > MAXBYTES MAXBLOCKS INCREMENT_BY > > > USER_BYTES USER_BLOCKS > > > ------------------------------------------------------------------ > -- - > > > ----------------- ------------------------------ ----------------- > - -- > > > ---------------- --------- ------------------ --- ---------------- > -- - > > > ----------------- ------------------ ------------------ ---------- > ---- > > > ---- > > > D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF > > > 2 TS_TESTE 335872 > > > 41 AVAILABLE 2 NO > > > 0 0 0 > > > 262144 32 > > > > > > continua com 335872.... Vou tentar diminuir tanto que chega em > áreas > > > com dados : > > > > > > [EMAIL PROTECTED]:SQL>alter database datafile 'D:\O9IR2\O9IR2 > > > \TS_TESTE_01.DBF' resize 100000; > > > alter database datafile 'D:\O9IR2\O9IR2\TS_TESTE_01.DBF' resize > 100000 > > > * > > > ERRO na linha 1: > > > ORA-03214: O Tamanho do Arquivo especificado é menor que o mínimo > > > necessário > > > > > > > > > ===> OBVIAMENTE, o exemplo é muito simples, em Produção vc não só > vai > > > ter vários datafiles (cada qual com a sua hwm), como ainda pode > > > acontecer de ter um segmento (seja tabela, índice, partição, o que > > > for) espalhado em mais de um datafile, aí num caso desses é bem > mais > > > trabalhoso antes do banco 10g, mas o conceito tái demonstrado. > > > > > > []s > > > > > > Chiappa > > > > > > > > > > > > --- Em oracle_br@yahoogrupos.com.br, "Ederson" <[EMAIL PROTECTED]> > escreveu > > > > > > > > > > > Jader, > > > > > > > > O que vc quer não será possível, pois o Oracle mantém uma > > > informação por > > > > tablespace chamada HWM (High Water Mark) que significa o ponto > na > > > tablespace > > > > onde chegou a escrita de dados. > > > > > > > > Por mais que vc remova usuários, a HWM só vai baixar para vc > fazer > > > um resize > > > > no datafile da tablespace, se a remoção de objetos (drop ou > > > truncate) > > > > acontecer no objeto que gerou a última HWM, e isto não é > possível > > > (bem, eu > > > > até hoje não encontrei esta informação) descobrir. > > > > > > > > Resumindo, vc só conseguirá fazer RESIZE no datafile da > tablespace > > > se o > > > > tamanho desejado ficar acima da HWM, ok? > > > > > > > > > > > > Ederson Elias de Oliveira > > > > DBA Oracle > > > > Setransp - Goiânia-GO > > > > ---------------------------------------------------------------- > --- > > > > -----Mensagem original----- > > > > De: oracle_br@yahoogrupos.com.br > > > [mailto:[EMAIL PROTECTED] Em > > > > nome de Jader - Suporte Técnico - Engeman EAM > > > > Enviada em: segunda-feira, 17 de abril de 2006 10:15 > > > > Para: oracle_br@yahoogrupos.com.br > > > > Assunto: RES: [oracle_br] "Limpar" TableSpaces > > > > > > > > André, > > > > > > > > No meu caso aqui eu tenho vários usuários amarrados a uma única > > > tablespace. > > > > O que eu queria era diminuir o tamanho físico de minha > tablespace > > > após matar > > > > um usuário entendeu? Para liberar espaço em disco. > > > > > > > > Atenciosamente, > > > > > > > > Jader Resende de Souza > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ > -------------------------------------------------------- > > > Atenção! As mensagens deste grupo são de acesso público e de > inteira > > > responsabilidade de seus remetentes. > > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > > > > > ------------------------------------------------------------------ > -------------------------------------------------------- > __________________________________________________________________ > > > > > > Este Grupo recebe o apoio da SQL Magazine - > > > www.devmedia.com.br/sqlmagazine > > > __________________________________________________________________ > > > O grupo Oracle_br não aceita anexos. Quando oferecer algum > arquivo, tenha > > > o link do mesmo para evitar trafego(pedidos) desnecessário. > > > > > > > > > *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDAD > > > > <http://br.ard.yahoo.com/SIG=12fkpbrf4/M=399886.8024024.9168513.236989 > 3/D=brclubs/S=2137114689:HM/Y=BR/EXP=1145300394/A=3503032/R=2/SIG=1542 > > m34g9/*http://lt.dell.com/lt/lt.aspx? > CID=11982&LID=329182&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/con > tent/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs> > > > > > > ------------------------------ > > > *Links do Yahoo! Grupos* > > > > > > > - Para visitar o site do seu grupo na web, acesse: > > > http://br.groups.yahoo.com/group/oracle_br/ > > > > > > - Para sair deste grupo, envie um e-mail para: > > > [EMAIL PROTECTED]<oracle_br- > [EMAIL PROTECTED]> > > > > > > > - O uso que você faz do Yahoo! Grupos está sujeito aos Termos > do > > > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > -------------------------------------------------------------------------------------------------------------------------- > > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ > > Este Grupo recebe o apoio da SQL Magazine - > www.devmedia.com.br/sqlmagazine > __________________________________________________________________ > O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha > o link do mesmo para evitar trafego(pedidos) desnecessário. > > > > *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDAD > <http://br.ard.yahoo.com/SIG=12f9nggv0/M=399886.8024024.9168513.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1145302861/A=3503032/R=2/SIG=1542m34g9/*http://lt.dell.com/lt/lt.aspx?CID=11982&LID=329182&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs> > ------------------------------ > *Links do Yahoo! Grupos* > > - Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > - Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED]<[EMAIL PROTECTED]> > > - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Yahoo! Grupos, um serviço oferecido por: PUBLICIDAD <http://br.ard.yahoo.com/SIG=12fkmkjlj/M=399886.8024024.9168513.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1145303020/A=3503032/R=2/SIG=1542m34g9/*http://lt.dell.com/lt/lt.aspx?CID=11982&LID=329182&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs> ________________________________ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo! <http://br.yahoo.com/info/utos.html> . [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html