OGG DDL trigger造成升级数据库后大量SYS对象失效和数据库DDL失效

联系:QQ(5163721)

标题:OGG DDL trigger造成升级数据库后大量SYS对象失效和数据库DDL失效

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

OGG的DDL功能真是坑,今天在测试库尝试升级,被OGG的DDL给坑了(以前没摸过这个库,不知道有这个东西……)
以后,做任何大操作以前,一定要仔细检查数据库,是否曾经开启过OGG的DDL功能。
这个功能有很多隐患:
因为OGG的DDL是建立在SYS用户下面的, 与其他普通用户的trigger不同:
1,数据库文件offline后,如果有OGG的DDL曾经被开启,可能因此打不开数据库(先disable ogg ddl才行)
2,升级过程中,如果没有disable ddl trigger,可能出现一些升级后的异常
3,OGG用户删除后,并不能删除OGG的DDL trigger,因为他的属主是SYS,且属于internal trigger,会导致大量SYS用户的对象失效和DDL功能失效。
。。。。

升级数据库,从11.2.0.1到11.2.0.4,升级过程中,没有报错,但是数据库启动后,报错:

Errors in file /u01/oracle/app/diag/rdbms/gpsdb3/gpsdb3/trace/gpsdb3_ora_19939.trc:
ORA-04045: errors during recompilation/revalidation of SYS.OLAPISTARTUPTRIGGER
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLR
Completed: ALTER DATABASE OPEN

尝试删除OGG用户,报错:

SQL> drop user GGUSR;      
drop user GGUSR
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"


SQL> 

检查报错的OLAP过程,为INVALID状态:

SQL> select owner, object_type, status from all_objects where object_name='OLAPIHISTORYRETENTION';

OWNER                          OBJECT_TYPE         STATUS
------------------------------ ------------------- -------
SYS                            PROCEDURE           INVALID

SQL> 

但是升级后,检查所有数据库组件是VALID状态:

SQL> set pages 9999
SQL> set linesize 1000
SQL> col comp_id for a14
SQL> col comp_name for a36
SQL> col version for a14
SQL> select COMP_ID, COMP_NAME, VERSION, STATUS from dba_registry;

COMP_ID        COMP_NAME                            VERSION        STATUS
-------------- ------------------------------------ -------------- ----------------------
OWB            OWB                                  11.2.0.1.0     VALID
APEX           Oracle Application Express           3.2.1.00.10    VALID
AMD            OLAP Catalog                         11.2.0.4.0     VALID
SDO            Spatial                              11.2.0.4.0     VALID
ORDIM          Oracle Multimedia                    11.2.0.4.0     VALID
XDB            Oracle XML Database                  11.2.0.4.0     VALID
CONTEXT        Oracle Text                          11.2.0.4.0     VALID
EXF            Oracle Expression Filter             11.2.0.4.0     VALID
RUL            Oracle Rules Manager                 11.2.0.4.0     VALID
OWM            Oracle Workspace Manager             11.2.0.4.0     VALID
CATALOG        Oracle Database Catalog Views        11.2.0.4.0     VALID
CATPROC        Oracle Database Packages and Types   11.2.0.4.0     VALID
JAVAVM         JServer JAVA Virtual Machine         11.2.0.4.0     VALID
XML            Oracle XDK                           11.2.0.4.0     VALID
CATJAVA        Oracle Database Java Packages        11.2.0.4.0     VALID
APS            OLAP Analytic Workspace              11.2.0.4.0     VALID
XOQ            Oracle OLAP API                      11.2.0.4.0     VALID

17 rows selected.

SQL> 

理论上,升级后,组件都是正常的,为什么出现这种情况?

SQL> select owner, trigger_name, status from dba_triggers where trigger_name like '%OLAPI%';

OWNER                          TRIGGER_NAME                   STATUS
------------------------------ ------------------------------ --------
SYS                            OLAPISTARTUPTRIGGER            ENABLED
SYS                            OLAPISHUTDOWNTRIGGER           ENABLED

SQL> 

尝试disable 这两个trigger,也报错:

SQL> ALTER TRIGGER SYS.OLAPISTARTUPTRIGGER DISABLE;
ALTER TRIGGER SYS.OLAPISTARTUPTRIGGER DISABLE
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "GGUSR.DDLREPLICATION"


SQL> 

貌似所有的DDL都失效了:

SQL> create user lunar identified by lunar;
create user lunar identified by lunar
                                *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"


SQL>     

再一查SYS的无效对象,800多个:

SQL> select count(*) from dba_objects where status='INVALID';

  COUNT(*)
----------
       814

SQL> 

使用utlrp编译,也报错:

SQL> @?/rdbms/admin/utlrp

COMP_TIMESTAMP UTLRP_BGN  2015-04-16 00:36:07

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#
DECLARE
*
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at "SYS.UTL_RECOMP", line 865
ORA-06512: at line 4



COMP_TIMESTAMP UTLRP_END  2015-04-16 00:36:07

DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

                  0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

                          0

CREATE OR REPLACE FUNCTION local_enquote_name (str varchar2)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"


DECLARE
*
ERROR at line 1:
ORA-00904: "LOCAL_ENQUOTE_NAME": invalid identifier
ORA-06512: at line 27


DROP function local_enquote_name
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 904
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-04045: errors during recompilation/revalidation of GGUSR.DDLREPLICATION
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06512: at line 1027
ORA-04067: not executed, package body "GGUSR.DDLREPLICATION" does not exist
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"GGUSR.DDLREPLICATION"


FAILED CHECK FOR INDEXTYPE CONTEXT
Warning: XDB now invalid, could not find xdbconfig

PL/SQL procedure successfully completed.

SQL> 

最后一行提示XDB组件有问题:

SQL> SELECT substrb(Comp_ID,1,10)Comp_ID,
  2  substrb(Status,1,8)Status,
  3  substrb(Version,1,12)Version,
  4  substrb(Comp_Name,1,35)Comp_Name
  5  FROM DBA_Registry
  6  WHERE comp_id = 'XDB';

COMP_ID    STATUS   VERSION      COMP_NAME
---------- -------- ------------ -----------------------------------
XDB        INVALID  11.2.0.4.0   Oracle XML Database

SQL>

diable OGG的trigger,然后删除ogg用户后,再次使用utlrp编译,已经正常了:

SQL> @?/rdbms/admin/utlrp

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2015-04-16 01:03:22

1 row selected.

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END  2015-04-16 01:04:47

1 row selected.

DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

1 row selected.

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0

1 row selected.


Function created.


PL/SQL procedure successfully completed.


Function dropped.


PL/SQL procedure successfully completed.

SQL> 

且数据库已经没有无效对象:

SQL>  set heading off                                                                                                                        
SQL>  spool compileinvalid.sql                                                                                                               
SQL>  select 'alter '||object_type|| ' ' || owner ||'.'||object_name || ' compile;' from dba_objects where status='INVALID';                 

no rows selected

SQL> 
SQL> 
SQL> 

再次校验XDB的组件,正常了:

SQL> execute dbms_regxdb.validatexdb;

PL/SQL procedure successfully completed.

SQL> SELECT substrb(Comp_ID,1,10)Comp_ID,
substrb(Status,1,8)Status,
substrb(Version,1,12)Version,  2    3  
  4  substrb(Comp_Name,1,35)Comp_Name
FROM DBA_Registry  5  
  6  WHERE comp_id = 'XDB';

COMP_ID              STATUS          VERSION    COMP_NAME
-------------------- --------------- ---------- ----------------------------------------
XDB                  VALID           11.2.0.4.0 Oracle XML Database

SQL> alter trigger MDSYS.SDO_GEOR_ADDL_TRIGGER enable;
alter trigger MDSYS.SDO_GEOR_BDDL_TRIGGER enable;
Trigger altered.

SQL> 

Trigger altered.

SQL> 

再次查询组建状态,都ok:

SQL> set pages 9999
SQL> set linesize 1000
SQL> col comp_id for a14
SQL> col comp_name for a36
SQL> col version for a14
SQL> select COMP_ID, COMP_NAME, VERSION, STATUS from dba_registry;

COMP_ID        COMP_NAME                            VERSION        STATUS
-------------- ------------------------------------ -------------- ----------------------
OWB            OWB                                  11.2.0.1.0     VALID
APEX           Oracle Application Express           3.2.1.00.10    VALID
AMD            OLAP Catalog                         11.2.0.4.0     VALID
SDO            Spatial                              11.2.0.4.0     VALID
ORDIM          Oracle Multimedia                    11.2.0.4.0     VALID
XDB            Oracle XML Database                  11.2.0.4.0     VALID
CONTEXT        Oracle Text                          11.2.0.4.0     VALID
EXF            Oracle Expression Filter             11.2.0.4.0     VALID
RUL            Oracle Rules Manager                 11.2.0.4.0     VALID
OWM            Oracle Workspace Manager             11.2.0.4.0     VALID
CATALOG        Oracle Database Catalog Views        11.2.0.4.0     VALID
CATPROC        Oracle Database Packages and Types   11.2.0.4.0     VALID
JAVAVM         JServer JAVA Virtual Machine         11.2.0.4.0     VALID
XML            Oracle XDK                           11.2.0.4.0     VALID
CATJAVA        Oracle Database Java Packages        11.2.0.4.0     VALID
APS            OLAP Analytic Workspace              11.2.0.4.0     VALID
XOQ            Oracle OLAP API                      11.2.0.4.0     VALID

17 rows selected.

SQL> 
此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

评论功能已关闭。