ORA-21799 and solution; seeking root cause analysis
Date: Tue, 24 Mar 2009 20:23:52 -0700 (PDT)
alert.log started to write the following once per 10 seconds:
Tue Mar 24 11:25:53 2009
Errors in file /u01/app/oracle/admin/oracp3/bdump/oracp31_smon_16441.trc: ORA-21779: duration not active
ORA-06512: at line 1
and SMON trace file had this once per 10 seconds (after process state dump):
- 2009-03-24 11:25:53.492 Drop transient type: SYSTPZd71k+XjoyfgQG8KQW8u9g==
- 2009-03-24 11:25:53.492 SMON: following errors trapped and ignored: ORA-21779: duration not active ORA-06512: at line 1
I can't find relevant information about this error on Google or Metalink, except Bug 7593729. But that bug doesn't offer analysis or workaround. I don't know what duration means in this context. It may be related to ADT (abstract data type) used in OLAP: http://download.oracle.com/docs/cd/B19306_01/olap.102/b14350/olap_table.htm But I don't think our developers use this technology.
Solution: I enabled 10046 trace on smon for less than a minute. This in the trace file caught our eyes:
PARSING IN CURSOR #5 len=60 dep=1 uid=0 oct=78 lid=0 tim=1208903290476090 hv=0 ad='db71b798' DROP TYPE "TRACS_USER"."SYSTPZd71k+XjoyfgQG8KQW8u9g==" FORCE END OF STMT
PARSE #5:c=1000,e=591,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1208903290476083 BINDS #5:
It appeared a few times. The DBA supporting this app said this user should not own any object except synonyms. Dba_objects indeed had this single, non-synonym, object. I logged in as me and manually dropped the type (not using FORCE keyword). The trace stopped.
Questions: What is this transient type? How was it created? Why can't SMON drop it while I, a DBA user, can? Or perhaps it was dropped because the SQL in the trace file didn't have an error, but immediately created? How do we prevent it in the future?
We use Oracle 10.2.0.4, RAC, RHEL5.2, x86_64. Thanks.
Yong HuangReceived on Tue Mar 24 2009 - 22:23:52 CDT