在Oracle10gR2 10.2.0.1的Dataguard备用库启动后,你会发现以下错误:
Thu Aug 9 11:22:11 2007 LOGSTDBY: Validating controlfile with logical metadata Thu Aug 9 11:22:12 2007 LOGSTDBY: Validation complete Thu Aug 9 11:22:15 2007 Errors in file /data2/ora10g/admin/eygle/udump/eygle_ora_1372.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-12663: Services required by client not available on the server ORA-36961: Oracle OLAP is not available. ORA-06512: at "SYS.OLAPIHISTORYRETENTION", line 1 ORA-06512: at line 15 Completed: ALTER DATABASE OPEN |
对应的跟踪文件中,输出的具体信息:
Error in executing triggers on database startup *** 2007-08-09 11:22:15.869 ksedmp: internal or fatal error ORA-00604: error occurred at recursive SQL level 1 ORA-12663: Services required by client not available on the server ORA-36961: Oracle OLAP is not available. ORA-06512: at "SYS.OLAPIHISTORYRETENTION", line 1 ORA-06512: at line 15 |
提示显示,在数据库启动过程中,执行了一个和OLAP有关的Trigger,出现了错误。
检查数据库,得到以下两个相关Trigger:
SQL> select trigger_name,status from dba_triggers where trigger_name like '%OLAP%'; TRIGGER_NAME STATUS ------------------------------ -------- OLAPISTARTUPTRIGGER ENABLED OLAPISHUTDOWNTRIGGER ENABLED |
总结:
我们可以通过禁用这两个Trigger,以此防止OLAP在数据库启动和关闭时的检验,这样就可以屏蔽这个错误信息。Metalink上有几个Bug和这个错误相关,Bug号4630695是其中之一,目前,这个Bug在Oracle11g中已经得到更正。
