sexta-feira, 28 de fevereiro de 2020

Oracle 12c - índice SYS.WRH$_SGASTAT_U inválido após upgrade

Olá pessoal.
Recentemente fiz o upgrade do ambiente Oracle 11g (11.2.0.4) para o Oracle 12c (12.2.0.1) e após alguns dias verifiquei o seguinte índice inválido WRH$_SGASTAT_U:

SYS @ db12c > SELECT table_owner,  table_name, index_name
FROM  dba_indexes
WHERE index_type = 'NORMAL'
AND  table_name IN (
SELECT table_name
FROM dba_tables
WHERE table_name LIKE 'WRH$\_%' ESCAPE '\'
AND partitioned = 'YES')
AND partitioned = 'NO';

TABLE_OWNER        TABLE_NAME         INDEX_NAME
--------------------------- -------------------------- ---------------------------
SYS                              WRH$_SGASTAT    WRH$_SGASTAT_U

Verificando o suporte da Oracle e identifiquei que o problema trata-se de um BUG da versão 12c do Oracle, o BUG 25954054, descrito no seguinte do ID 25954054.8, informa que o problema pode ocorrer após o upgrade de versão.

Para corrigir o problema, realizei a seguinte solução, conforme recomendado pela Oracle:

Lembrando que será necessário estar conectado no ambiente de banco de dados com o usuário SYS devido as permissões.

SYS @ db12c > alter table wrh$_sgastat drop constraint wrh$_sgastat_u;

Table altered.

SYS @ db12c > alter session set events  '14524 trace name context forever, level 1';

Session altered.

SYS @ db12c > alter table wrh$_sgastat add constraint wrh$_sgastat_u
        unique (dbid, snap_id, instance_number, name, pool, con_dbid,
   stattype) using index local tablespace SYSAUX;  2    3

Table altered.

SYS @ db12c > alter session set events  '14524 trace name context off';

Session altered.

SYS @ db12c >

Espero ter ajudado!
Abraço.


Um comentário:

  1. Ajudou demais mestre!!! Parabens por citar os ID das documentacoes oficiais, Senior nato!!!

    ResponderExcluir