客户在异机进行数据库的不完全恢复,用来导出被误删除的表,恢复完成后,打开数据库时出现了ORA-36961错误。
数据库版本为10.2.0.4 for HP-UX,打开数据库前台出现ORA-3113错误:
SQL> startup Total System Global Area 4294967296 bytes Fixed SIZE 2073472 bytes Variable SIZE 805309568 bytes DATABASE Buffers 3472883712 bytes Redo Buffers 14700544 bytes DATABASE mounted. ORA-03113: end-of-file ON communication channel |
在启动过程中,如果前台出现ORA-3113错误,那么后台多半是ORA-600或ORA-7445错误,检查告警日志,却发现出现了ORA-36961错误:
Error IN executing triggers ON DATABASE startup 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 Error IN executing triggers ON instance shutdown 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组件的不正常有关。由于是异机恢复,很可能新的ORACLE_HOME安装的OLAP组件与原始环境不一致,根据文档’Ora-36961 Oracle OLAP is Not Available’ error During database Startup [ID 1291894.1],需要启用OLAP组件。由于OLAP组件所需要的xsyeolap.o文件缺失,需要从安装介质中获取。首先需要从介质盘的目录中拷贝Disk1/stage/Patches/oracle.rdbms.olap/10.2.0.5.0/1/DataFiles/filegroup1.1.1.jar文件到临时目录,然后抽取文件$ORACLE_HOME/jdk/bin/jar -xvf filegroup1.1.1.jar,最后将文件xsyeolap.o拷贝到ORACLE_HOME/rdbms/lib:
% cd $ORACLE_HOME/rdbms/lib % make -f ins_rdbms.mk olap_on ioracle |
重启数据库既可。