Objetos do SYS inválidos após remoção do XMLDB 11G

Como já abordado em outro artigo Instalando o Oracle XML DB 11G, a remoção do Oracle XMLDB é simples, basta executarmos o script catnoqm fornecido pela própria Oracle e pronto.

Contudo, podemos observar que após sua desinstalação varios objetos do SYS se tornam inválidos no 11.2.0.1 e 11.2.0.2, isto em função do BUG 9892139 (já resolvido na versão 11.2.0.3) onde varios objetos do SYS são marcados como inválidos devido dependencias perdidas com o XDB.

Para podermos reparar estes objetos a Oracle disponibilizou alguns scripts que devem ser executados manualmente com o SYS, conforme veremos abaixo:

SQL> set lines 200
SQL> col Component for a70
SQL> select comp_name "Component", status from dba_registry where comp_name like '%XML%';

Component                                                              STATUS
---------------------------------------------------------------------- --------------------------------------------
Oracle XML Database                                                    VALID

SQL> select owner, count(1) from dba_objects where status <> 'VALID' group by owner;

no rows selected

Podemos ver que o XML está instalado e nenhum objeto está inválido, vejamos após executarmos o script para desinstalar o XMLDB.

SQL> @?/rdbms/admin/catnoqm
....

SQL> select comp_name "Component", status from dba_registry where comp_name like '%XML%';

no rows selected

SQL> select owner, count(1) from dba_objects where status <> 'VALID' group by owner;

OWNER                            COUNT(1)
------------------------------ ----------
SYS                                    29

Maravilha, XML desinstalado porem ganhamos alguns objetos inválidos… Vamos ver quais são:

SQL> col object_name for a30
SQL> select OWNER, OBJECT_NAME, OBJECT_TYPE from dba_objects where status = 'INVALID';

OWNER                          OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------ -------------------
SYS                            ALL_XML_SCHEMAS                VIEW
SYS                            ALL_XML_SCHEMAS2               VIEW
SYS                            KU$_XMLSCHEMA_VIEW             VIEW
SYS                            KU$_XMLSCHEMA_ELMT_VIEW        VIEW
SYS                            KU$_OPQTYPE_VIEW               VIEW
SYS                            KU$_COLUMN_VIEW                VIEW
SYS                            KU$_PCOLUMN_VIEW               VIEW
SYS                            KU$_NT_PARENT_VIEW             VIEW
SYS                            KU$_FHTABLE_VIEW               VIEW
SYS                            KU$_10_1_FHTABLE_VIEW          VIEW
SYS                            KU$_PFHTABLE_VIEW              VIEW

OWNER                          OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------ -------------------
SYS                            KU$_10_1_PFHTABLE_VIEW         VIEW
SYS                            KU$_ACPTABLE_VIEW              VIEW
SYS                            KU$_IOTABLE_VIEW               VIEW
SYS                            KU$_10_1_IOTABLE_VIEW          VIEW
SYS                            KU$_PIOTABLE_VIEW              VIEW
SYS                            KU$_10_1_PIOTABLE_VIEW         VIEW
SYS                            KU$_VIEW_VIEW                  VIEW
SYS                            KU$_M_VIEW_FH_VIEW             VIEW
SYS                            KU$_M_VIEW_PFH_VIEW            VIEW
SYS                            KU$_M_VIEW_IOT_VIEW            VIEW
SYS                            KU$_M_VIEW_PIOT_VIEW           VIEW

OWNER                          OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------ -------------------
SYS                            KU$_M_VIEW_LOG_FH_VIEW         VIEW
SYS                            KU$_M_VIEW_LOG_PFH_VIEW        VIEW
SYS                            KU$_CLUSTER_VIEW               VIEW
SYS                            DBMS_METADATA_INT              PACKAGE BODY
SYS                            DBMS_METADATA_UTIL             PACKAGE BODY
SYS                            VALIDATE_ORDIM                 PROCEDURE
SYS                            AWM_CREATEXDSFOLDER            FUNCTION

29 rows selected.

Como descrito acima, os objetos se tornaram inválidos devido dependências perdidas com o XDB, e a correção é a execução do seguintes scripts:

SQL> connect / as sysdba

-- Make XDB Dummy views
start ?/rdbms/admin/catxdbdv.sql

-- update Data Pump related objects and KU$_ views

start ?/rdbms/admin/dbmsmeta.sql
start ?/rdbms/admin/dbmsmeti.sql
start ?/rdbms/admin/dbmsmetu.sql
start ?/rdbms/admin/dbmsmetb.sql
start ?/rdbms/admin/dbmsmetd.sql
start ?/rdbms/admin/dbmsmet2.sql
start ?/rdbms/admin/catmeta.sql
start ?/rdbms/admin/prvtmeta.plb
start ?/rdbms/admin/prvtmeti.plb
start ?/rdbms/admin/prvtmetu.plb
start ?/rdbms/admin/prvtmetb.plb
start ?/rdbms/admin/prvtmetd.plb
start ?/rdbms/admin/prvtmet2.plb
start ?/rdbms/admin/catmet2.sql

SQL> select owner, count(1) from dba_objects where status <> 'VALID' group by owner;

no rows selected

Pronto, nenhum objeto inválido.! Solução descrita na NOTE 1269470.1 (Metalink)

%name Objetos do SYS inválidos após remoção do XMLDB 11G

Autor: Anderson Graf

Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Entusiasta da tecnologia Oracle, ACE Associate ♠, autor em vários blogs e OTN. Consultor Oracle Senior na Exímio Soluções em TI

Envolvido em soluções de:
– Implementação, migração, gerenciamento e suporte a produtos Oracle, multiplataforma
– Monitoramento de ambientes 24×7
– Backup e Recovery
– Performance e Tuning
– Alta disponibilidade (HA) – RAC, Data Guard
– EM database/grid/cloud control
– Particionamento & Advanced Compression
– Oracle Engineered Systems – ODA, Exadata

Blog pessoal: http://www.andersondba.com.br
Articulista na Oracle Technology Network (OTN) – https://goo.gl/99R6yW
ACE Associate – https://goo.gl/MBB51b
Articulista GPO – http://profissionaloracle.com.br