Diminuir tablespace SYSAUX e UNDO

Dúvidas, dicas e atualizações sobre o Treinamento Oracle RAC.
Post Reply
leonardopedroso

Diminuir tablespace SYSAUX e UNDO

Post by leonardopedroso » Thu May 04, 2017 5:57 pm

Portilho,
qual o procedimento mais assertivo para diminuir o tamanho das tablespaces SYSAUX e UNDO? Pelo visto adicionaram muitos arquivos na UNDO para dar conta do recado em algumas situações e o que tenho hoje são duas UNDO com 300GB cada uma sendo que só usa de fato 50GB.
O que vi demais perto disso foi criar uma nova UNDO e substituir a antiga no parâmetro: undo_tablespace por essa nova! E após cessar as transações dropar as anteriores monitorando o script abaixo:

select tablespace_name tablespace, status, sum(bytes)/1024/1024 sum_in_mb, count(*) counts
from dba_undo_extents group by tablespace_name, status
order by 1,2;


A SYSAUX com o mesmo problema. A tabela de auditoria ficava nela e foi movida para outra Tablespace e ficou um espaço de 230GB livre sem uso, que poderia estar liberado para outras TL.

gcomenale

Re: Diminuir tablespace SYSAUX e UNDO

Post by gcomenale » Thu May 04, 2017 6:22 pm

Já verificou o que está consumindo a SYSAUX?

leonardopedroso

Re: Diminuir tablespace SYSAUX e UNDO

Post by leonardopedroso » Fri May 05, 2017 5:58 pm

Na SYSAUX tenho apenas 100GB utilizados e 230GB livres de arquivos que foram sendo adicionados.

Os dados que tenho na sysaux são tabelas relacionadas á ASH e demais tabelas internas.

gcomenale

Re: Diminuir tablespace SYSAUX e UNDO

Post by gcomenale » Sat May 06, 2017 7:35 pm

Manda o resultado do SELECT do consumo de cada componente da SYSAUX.

leonardopedroso

Re: Diminuir tablespace SYSAUX e UNDO

Post by leonardopedroso » Mon May 08, 2017 4:43 pm

o select utilizado foi esse:

SELECT SEGMENT_NAME, BYTES/1024/1024/1024, SEGMENT_TYPE
FROM dba_segments WHERE TABLESPACE_NAME='SYSAUX'
ORDER BY bytes DESC;

e o resultado esse:

WRH$_ACTIVE_SESSION_HISTORY 43,61474609375 TABLE PARTITION
I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST 11,4423828125 INDEX
WRH$_ACTIVE_SESSION_HISTORY_PK 6,11669921875 INDEX PARTITION
I_WRI$_OPTSTAT_H_ST 5,8818359375 INDEX
WRH$_EVENT_HISTOGRAM_PK 5,4462890625 INDEX PARTITION
WRH$_EVENT_HISTOGRAM 3,7969970703125 TABLE PARTITION
WRH$_SQLSTAT 2,42779541015625 TABLE PARTITION
WRH$_LATCH_MISSES_SUMMARY_PK 2,2789306640625 INDEX PARTITION
WRH$_LATCH 1,8359375 TABLE PARTITION
WRH$_LATCH_MISSES_SUMMARY 1,73931884765625 TABLE PARTITION
WRH$_SYSSTAT_PK 1,72467041015625 INDEX PARTITION
WRH$_LATCH_PK 1,413818359375 INDEX PARTITION
WRH$_SYSSTAT 1,13616943359375 TABLE PARTITION

O tamanho total dos itens é de: 103GB, de acrodo com esse select:

select sum(bytes)/1024/1024/1024 FROM dba_segments WHERE TABLESPACE_NAME='SYSAUX'


E esse é o espaço livre dela:

TL Used FREE Total %free
SYSAUX 105958 200100 306058 65

*select utilizado*:

select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))
"Pct. Free"
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name and df.totalspace <>0
Order by 3 desc;

gcomenale

Re: Diminuir tablespace SYSAUX e UNDO

Post by gcomenale » Mon May 08, 2017 4:57 pm

Use esse select

Code: Select all

clear columns
set lines 200
col OCCUPANT_NAME format a25
col OCCUPANT_DESC format a53
col MOVE_PROCEDURE format a38
col MOVE_PROCEDURE_DESC format a56
col SCHEMA_NAME format a8
col MB format 999999
select OCCUPANT_DESC, MOVE_PROCEDURE, MOVE_PROCEDURE_DESC, SPACE_USAGE_KBYTES/1024 "Mb" from v$sysaux_occupants
/


Qual a versão do seu banco?

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

Re: Diminuir tablespace SYSAUX e UNDO

Post by portilho » Tue May 09, 2017 7:16 am

Para corrigir um problema de UNDO muito grande, o procedimento é este mesmo: crie uma nova, altere o parâmetro UNDO_TABLESPACE para esta TABLESPACE, e no dia seguinte, remova a TABLESPACE antiga.

Já com SYSAUX isto não é possível. Veja o que diz a Nota do MOS "How To Recreate the SYSAUX Tablespace (Doc ID 468116.1)":
"So dropping and creating only SYSAUX tablespace is not the supported actions, it similar to the SYSTEM tablespace i.e., its a mandatory tablespace."

As opções que esta Nota dá são exportar e importar os dados de aplicação em outro banco de dados via Transportable TableSpace, por exemplo.

gcomenale

Re: Diminuir tablespace SYSAUX e UNDO

Post by gcomenale » Tue May 09, 2017 9:38 am

Correto, Portilho.

Caso você queria apenas liberar espaço na SYSAUX, alguns componentes podem ser sofrer purge ou move, mas a grande maioria não permite.
O melhor dos casos é seguir a nota do MOS.

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

Re: Diminuir tablespace SYSAUX e UNDO

Post by portilho » Thu May 11, 2017 11:44 am

É, como ele já disse que tinha a auditoria lá, dificilmente vai conseguir reduzir o tamanho do DATAFILE.

Post Reply