ogg的ddl触发器导致drop操作失败ORA-00604,ORA-04045,ORA-04064,ORA-06508,ORA-06512
--ogg导致drop操作失败ORA-00604,ORA-04045,ORA-04064,ORA-06508,ORA-06512
[oracle@ora10gr2 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 13 23:13:54 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> drop user test cascade;
drop user test cascade
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of OGG.DDLREPLICATION
ORA-04064: not executed, invalidated
ORA-04064: not executed, invalidated package body "OGG.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"OGG.DDLREPLICATION"
ORA-06512: at line 902
ORA-04064: not executed, invalidated package body "OGG.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"OGG.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"OGG.DDLREPLICATION"
ORA-06512: at line 902
ORA-04045: errors during recompilation/revalidation of OGG.DDLREPLICATION
ORA-04064: not executed, invalidated
ORA-04064: not executed, invalidated package body "OGG.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called:
"OGG.DDLREPLICATION"
ORA-06512: at line 902
ORA-04064: not executed, invalidated package body "OGG.DDLREPLICATION"
ORA-06508: PL/SQL: could not find program unit being called: "OGG.D
解决过程:
[oracle@ora10gr2 11.1]$ ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
Linux, x86, 32bit (optimized), Oracle 10g on Oct 4 2011 23:54:04
Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (ora10gr2) 1> info all
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED
EXTRACT ABENDED EORA 00:00:00 287:14:37
EXTRACT ABENDED PUMP_SO 00:00:00 287:08:09
GGSCI (ora10gr2) 2> exit
[oracle@ora10gr2 11.1]$ which ggsci
/u01/app/ogg/11.1/ggsci
[oracle@ora10gr2 11.1]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 13 23:53:54 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @/u01/app/ogg/11.1/ddl_disable.sql
Trigger altered.
SQL> drop table test;
Table dropped.
小结:这个问题是由于在该数据库上部署了支持ddl的ogg,而我们在进行drop操作的时候ddl的触发器将阻止我们对表的drop操作,我们临时禁用ogg的ddl触发器后便可解决问题。