Oracle元数据重构实验(2)

在三个脚本中,笔者认为第三个脚本最重要。如果有组件在重构之后还存在问题,就体现在这个环节中。因为这个过程会将所有的元数据对象依次并行进行编译,如果组件有问题,是会有编译故障的。我们从输出的结果,可以看出是否是成功的。

如果有问题,通常第三个脚本会有明确的错误列表。

SQL> EXECUTE dbms_registry_sys.validate_components;

FAILED CHECK FOR PACKAGE BODY CTX_ADM

Warning: XDB now invalid, invalid objects found:

object_name                                object_type

-------------------------------------------------------

DBMS_XDBZ0                                PACKAGE BODY

DBMS_XDBZ                                  PACKAGE BODY

DBMS_XDB                                  PACKAGE BODY

DBMS_XDBUTIL_INT                          PACKAGE BODY

XDB$PATCHUPSCHEMA                            PROCEDURE

XDB$ACL_PKG_INT                            PACKAGE BODY

ORDIM INVALID OBJECTS: ORDIMAGE - INVALID - TYPE BODY

ORDIM INVALID OBJECTS: SI_STILLIMAGE - INVALID - TYPE BODY

ORDIM INVALID OBJECTS: ORDDICOM - INVALID - TYPE BODY

ORDIM INVALID OBJECTS: ORDPLSGWYUTIL - INVALID - PACKAGE BODY

ORDIM INVALID OBJECTS: ORDIMGSI_PKG - INVALID - PACKAGE BODY

ORDIM INVALID OBJECTS: ORD_DICOM_PKG - INVALID - PACKAGE BODY

ORDIM INVALID OBJECTS: ORD_DICOM_CT - INVALID - PACKAGE BODY

ORDIM INVALID OBJECTS: ORD_DICOM_ADMIN_PRV - INVALID - PACKAGE BODY

ORDIM INVALID OBJECTS: ORD_DICOM_ADMIN - INVALID - PACKAGE BODY

FAILED CHECK FOR FUNCTION APEX_APPLICATION_GET_PG_TNAME

PL/SQL procedure successfully completed.

完成了编译之后,就可以重新启动数据库。如果没有进一步的问题,就可以恢复使用。

[oracle@localhost backup]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 27 11:42:52 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> conn / as sysdba

Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 5344731136 bytes

Fixed Size                  2262656 bytes

Variable Size            1207961984 bytes

Database Buffers        4127195136 bytes

Redo Buffers                7311360 bytes

Database mounted.

Database opened.

3、结论

重构数据库元数据,是我们修复一些数据库故障的方法之一。但是,这种方法并不能完全解决所有元数据问题。一些由于Oracle Bug潜在引起的问题,是不能通过这种途径进行解决的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/95f298f11dd6ac702735e4383c4850cf.html