数据库异机恢复打开报错ORA-36961

客户在异机进行数据库的不完全恢复,用来导出被误删除的表,恢复完成后,打开数据库时出现了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

重启数据库既可。

This entry was posted in ORACLE and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *