Amigo, obrigado pelas respostas (que são uma verdadeira aula).

Legal poder contar com o pessoal da lista!


>From: "jlchiappa" <[EMAIL PROTECTED]>
>Reply-To: oracle_br@yahoogrupos.com.br
>To: oracle_br@yahoogrupos.com.br
>Subject: [oracle_br] Re: Liberação de Espaço
>Date: Tue, 06 Feb 2007 17:10:21 -0000
>
>Colega, no bd Oracle vc ABSOLUTAMENTE NÃO TEM controle de qual
>informação vai ser armazenada em qual datafile, ok ?? Logicamente
>falando, a granularidade de controle do armazenamento vai só até a
>tablespace, dentro da tablespace quando um dado é inserido ou
>alterado, QUALQUER extent livre vai ser usado, em princípio... Em
>muitos casos o bd segue a ordem em que os arquivos foram criados, MAS
>nem isso é garantido.
>   No caso em questão, porém, isso NÃO é relevante, pois para liberar
>espaço que vc não quer mais deixar alocado bastaria vc fazer um
>shrink do(s) datafile(s) em questão (comando ALTER DATABASE
>DATAFILE 'patchcompleto/nomecompletododatafile' RESIZE nnn; onde nnn
>é o menor tamanho possível, logo acima do último extent alocado.
>Assim, se hoje vc tem usado digamos 543 Mb no datafile, ele está
>criado com mais espaço que isso, E vc não quer mais deixar esse
>espaço extra alocado (pois sabe que não haverá proximamente mais
>inserts que precisarão do espaço), vc poderia pedir um RESIZE para
>543 Mb, aí o espaço que está em uso no datafile continua, MAS o
>espaço livre é liberado, é isso.... Vc não tem como, mas no caso em
>questão  ** NÃO PRECISA ** remover, "passar dados", alterar
>fisicamente enfim os datafiles afora o resize pra isso. Um script que
>pode te ajudar, servir de base pro seu pra encontrar o menor tamanho
>possível pra se resizear poderia ser :
>
>----------- maxshrink.sql ----------------------------------
>REM
>REM este script foi criado por Tom Kyte. Serve para checar o
>REM MÍNIMO tamanho usado nos datafiles.
>REM
>accept v_tablespaces CHAR prompt 'Tablespace(s) a Incluir, já contém %
>%, [ENTER] = todas:'
>set verify off
>column file_name format a50 word_wrapped
>column smallest format 999,990 heading "Smallest|Size|Poss."
>column currsize format 999,990 heading "Current|Size"
>column savings  format 999,990 heading "Poss.|Savings"
>break on report
>compute sum of savings on report
>
>column value new_val blksize NOPRINT
>
>select value from v$parameter where name = 'db_block_size'
>/
>
>select  tablespace_name, file_name,
>        ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
>        ceil( blocks*&&blksize/1024/1024) currsize,
>        ceil( blocks*&&blksize/1024/1024) -
>        ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
>from dba_data_files a,
>      ( select  file_id, max(block_id+blocks-1) hwm
>          from dba_extents
>         group by file_id ) b
>where a.file_id = b.file_id(+)
>   and a.tablespace_name like upper('%&v_tablespaces%')
>  order by 1,2
>/
>
>column cmd format a200 word_wrapped
>
>select   'alter database datafile '''||file_name||''' resize ' ||
>        ceil( (nvl(hwm,1)*&&blksize)/1024/1024 )  || 'm;' cmd
>from dba_data_files a,
>      ( select  file_id, max(block_id+blocks-1) hwm
>          from dba_extents
>         group by file_id ) b
>where a.file_id = b.file_id(+)
>   and a.tablespace_name like upper('%&v_tablespaces%')
>   and ceil( blocks*&&blksize/1024/1024) -
>       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0
>  order by a.tablespace_name, a.file_name
>/
>
>
>
>==> OBS : pode haver casos onde o datafile tem extent(s) acima do
>extent livre, nesses casos vc só poderá fazer o RESIZE pra um valor
>acima do último extent efetivamente usado, os eventuais extents free
>abaixo disso vc só recuperaria movendo o segmento.
>
>[]s
>
>   Chiappa
>
>--- Em oracle_br@yahoogrupos.com.br, "Everton Dias"
><[EMAIL PROTECTED]> escreveu
> >
> >
> > Pessoal, tenho a seguinte configuração em uma tbs de indices.
> > Como podem notar tenho 3 datafiles, contendo 1.5 GB, 1.9 GB e 150
>MB, porém
> > se somar os dados dos 3 ocuparia 1 GB.
> >
> > Como posso passar os dados para apenas 1 datafile e remover os
>demais ?
> >
> > Obrigado.
> >
> >
> >
> >   total MB    Free MB Datafile
>name
> > Used MB   total KB    Free KB    Used KB
> > ---------- ---------- ----------------------------------------------
>----
> > ---------- ---------- -----
> >       1500
>956.13 /u02/app/oracle/oradata/ovdb/cindx01.dbf
> > 543.88    1536000     979072
> >       1900
>1383.94 /u02/app/oracle/oradata/ovdb/cindx021.dbf
> > 516.06    1945600    1417152
> >        150
>0 /u02/app/oracle/oradata/ovdb/cindx03.dbf
> >       0     153600          0          0
> >
> > _________________________________________________________________
> > MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br
> >
>
>

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com

Responder a