fragmentação tablespace SYSTEM

Dúvidas, dicas e atualizações sobre o Treinamento Oracle Performance Diagnostics & Tuning.
Post Reply
lmane

fragmentação tablespace SYSTEM

Post by lmane »

Boa tarde,
Estava vendo o tamanho dos tablespaces e me depare que o tablespace SYSTEM estaba muito grande tinha 27G de espaço ocupado e revisando as tabelas deste tablespace vi que a tabla SYS.AUD$ (auditoria) tinha 25G, então realizei um truncate nessa tabela AUD$, logo o tablespace SYSTEM disminui de tamanho de espaço utilizado para 950M. Quando Tento redimensionar o tablespace SYSTEM, me sale o seguinte erro:

ALTER DATABASE DATAFILE '/u01/home/oracle/oracle/oradata/base01/system01.dbf'
RESIZE 6144M

ORA-3297 signalled during: ALTER DATABASE DATAFILE '/u01/home/oracle/oracle/orad
ata/base01/system01.dbf' RESIZE 6144M ...

Entendo que essa mensagem é pq existe fragmentação de tabelas, sei que para usar o shrink el Gerenciamento do Espaço de Segmentos do tablespace deveria estar configurado para automático, mas el tablespace system esta configurado como Gerenciamento do Espaço de Segmentos manual. Por favor alguem poderia indicar-me como posso fazer para redimensionar o tablesace SYSTEM com sucesso?

Agradeço pelo ajuda!!

portilho
Site Admin
Posts: 502
Joined: Wed May 29, 2013 8:51 am

Re: fragmentação tablespace SYSTEM

Post by portilho »

Olá.

Eu não gosto de chamar esta situação de fragmentação, e sim apenas de espaço livre não utilizado no DATAFILE.

Ter um DATAFILE grande não te trará NENHUM problema de desempenho. Objetos grandes podem causar lentidão, mas um DATAFILE com um grande espaço livre, não. O único momento em que imagino que isto te trará alguma lentidão é durante o backup via RMAN.

Você tem espaço livre no DATAFILE, mas provavelmente não tem espaço livre no final do DATAFILE, então não poderá reduzi-lo.

SHRINK / COALESCE é para objetos (tabelas, índices), e não para DATAFILEs.

A unica forma de recuperar este espaço perdido, que eu conheça, é via exp / imp para outro banco de dados.

lmane

Re: fragmentação tablespace SYSTEM

Post by lmane »

Obrigado Ricardo,
Ficou muito claro sua explicação!!

Agradeço

dpreviatti

Re: fragmentação tablespace SYSTEM

Post by dpreviatti »

Opa, pra acrescentar:

Quando preciso fazer esse tipo de resize e não é possível utilizar o exp/imp, sigo os passos:

1. Verifico o high water mark dos datafiles e identifico os segmentos que estão em blocos acima do tamanho ideal para resize;
2. Faço o shrink e move das tabelas;
3. Rebuild dos indexes;
4. Repito passos 1, 2 e 3 para todos os segmentos;
5. Faço o resize datafile para o tamanho desejado.

Dá um trabalhão dependendo do tamanho do datafile, mas sempre deu certo.

Espero ter contribuído.

portilho
Site Admin
Posts: 502
Joined: Wed May 29, 2013 8:51 am

Re: fragmentação tablespace SYSTEM

Post by portilho »

Aí sim, os objetos vão se movendo para longe do final do DATAFILE.
Mas não dá para dar MOVE nos objetos da SYSTEM, nem REBUILD de INDEX, que é o caso dele.

Mas para TABLESPACEs não-SYSTEM, funciona mesmo, apesar do trabalho.

Obrigado pela contribuição!

Post Reply