11.2.0.1 升级到 11.2.0.4 后两个重要组件INVALID状态

时间:2021-09-16 07:40:55
各位好:
       我的系统是 SUSE Linux Enterprise Server 11 x86_32位系统,单实例(非使用grid asm磁盘)11.2.0.1.0升级到 11.2.0.4.0,升级完后,查看 dba_regisrty,其中 Oracle OLAP API 组件和 Spatial 组件 状态为 INVALID。
在执行 catupgrd.sql 脚本过程中报如下错误:

*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","java/awt/Cursor","JOXLE^5e40d8f0",":SGAClass")
ORA-06512: at "SYS.DBMS_JAVA", line 655
ORA-06512: at line 1
SQL> 
SQL> execute dbms_java.loadjava('-r -g PUBLIC -synonym -schema ORDSYS ord/jlib/ordimdcm.jar');
BEGIN dbms_java.loadjava('-r -g PUBLIC -synonym -schema ORDSYS ord/jlib/ordimdcm.jar'); END;

*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4096 bytes of shared memory ("java pool","unknown
object","JOXLE^e309f921",":SGAClass")
ORA-06512: at "SYS.DBMS_JAVA", line 655
ORA-06512: at line 1


执行 utlu112s.sql 脚本报如下错误:
Oracle OLAP API
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
.   pool","oracle/AWAction/Create","JOXLE^6b30aa33",":SGAClass")
.   ORA-06512: at "SYS.DBMS_JAVA", line 655

Oracle Multimedia
.   ORA-00604: error occurred at recursive SQL level 1
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
.   pool","java/awt/Cursor","JOXLE^5e40d8f0",":SGAClass")
.   ORA-06512: at "SYS.DBMS_JAVA", line 655
.   ORA-06512: at line 1
.   ORA-00604: error occurred at recursive SQL level 1
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","unknown
.   object","JOXLE^e309f921",":SGAClass")
.   ORA-06512: at "SYS.DBMS_JAVA", line 655
.   ORA-06512: at line 1
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","unknown
.   object","JOXLE^f30990c7",":SGAClass")
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN_PRV", line 6945
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN", line 276
.   ORA-06512: at line 1
.   ORA-53051: no editDataModel session found
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN_PRV", line 7093
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN", line 304
.   ORA-06512: at line 14
.   ORA-53051: no editDataModel session found
.   ORA-53051: no editDataModel session found
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN_PRV", line 7093
.   ORA-06512: at "ORDSYS.ORD_DICOM_ADMIN", line 304
.   ORA-06512: at line 353
.                                       INVALID      11.2.0.4.0  00:19:24
Spatial
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","unknown
.   object","JOXLE^d890c71b",":SGAClass")
.   ORA-06512: at "SYS.DBMS_JAVA", line 655
.   ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","unknown
.   object","JOXLE^f4ba88d4",":SGAClass")
.   ORA-06512: at "SYS.DBMS_JAVA", line 655
.   ORA-29532: Java call terminated by uncaught Java exception:
.   oracle.aurora.server.tools.loadjava.ToolsError:
.   Error during loadjava: Failures occurred during processing.
.   Check trace file for details
.   ORA-06512: at "SYS.DBMS_JAVA", line 655

-

第一次执行 utlrp.sql 脚本,报如下错误:
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  5

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          5


Function created.


,但我加大 java_pool_size 内存为180M后,再重新执行 utlrp.sql 重新编译无效对象,执行结果没有提示错误了,如下:
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0


但我查 dba_registry ,Oracle OLAP API 组件和 Spatial 组件状态还是 INVALID,重新执行过多次 utlrp.sql ,再查,还是一样这个INVALID状态。
请问是怎么回事?
1、是 java_pool_size 内存太少导致的吗?但为什么设手工管理SGA,手工调大java_pool_size为180M,再重新执行 utlrp.sql 编译无效对象,还是一样是INVALID无效状态呢?
2、是否是要加大  java_pool_size 后,从头来过,utlu112i.sql,catupgrd.sql 脚本都要重新执行一遍呢?


待复,感谢!

1 个解决方案

#1


11g的话,你调大 memory_target 和 memory_max_target
然后再运行@utlrp.sql 重新编译无效的德程序包

#1


11g的话,你调大 memory_target 和 memory_max_target
然后再运行@utlrp.sql 重新编译无效的德程序包