ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 9i java_pool_size 设置不当 导致无法用户exp 逻辑导出

9i java_pool_size 设置不当 导致无法用户exp 逻辑导出

原创 Linux操作系统 作者:wengtf 时间:2012-06-06 08:51:21 0 删除 编辑

问题:

因为数据库做迁移,新库只做了share_pool和db_cache_size调整,做exp整库导出时出现如下错误:
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出整个数据库...
. 正在导出表空间定义
. 正在导出配置文件
. 正在导出用户定义
. 正在导出角色
. 正在导出资源成本
. 正在导出回退段定义
. 正在导出数据库链接
. 正在导出序号
. 正在导出目录别名
. 正在导出上下文名空间
. 正在导出外部函数库名称
. 导出 PUBLIC 类型同义词
EXP-00008: 遇到 ORACLE 错误 4031
ORA-04031: 无法分配 4032 字节的共享内存 ("shared pool","unknown object","joxs heap init","ioc_allocate_pal")
EXP-00000: 导出终止失败

分析:

1、看这表象第一是想到share pool大小是不是太小,故调整重启后再次,错误依旧,查看alert日志,提示:Tue Jun 05 08:20:38 2012
Errors in file s:\stat\admin\udump\stat_ora_3760.trc:
ORA-04031: 无法分配 4032 字节的共享内存 ("shared pool","unknown object","joxs heap init","ioc_allocate_pal")

2、再看stat_ora_3760.trc:
Dump file s:\stat\admin\udump\stat_ora_3760.trc
Tue Jun 05 08:20:38 2012
ORACLE V9.2.0.1.0 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.2 Service Pack 2, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
Windows 2000 Version 5.2 Service Pack 2, CPU type 586
Instance name: stat

Redo thread mounted by this instance: 1

Oracle process number: 27

Windows thread id: 3760, image: ORACLE.EXE


*** SESSION ID:(31.15805) 2012-06-05 08:20:38.000
ioc_allocate (size: 4096, heap name: *** SGA ***, flags: 9) caught 4031
*** 2012-06-05 08:20:38.000
ksedmp: internal or fatal error
ORA-04031: 无法分配 4032 字节的共享内存 ("shared pool","unknown object","joxs heap init","ioc_allocate_pal")
Current SQL statement for this session:
SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM2) SYNNAM2,             DBMS_JAVA.LONGNAME(SYNTAB) SYNTAB,             TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO      FROM   SYS.EXU9PTS      ORDER  BY SYNTIME
----- Call Stack Trace -----
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
-------------------- -------- -------------------- ----------------------------
_ksedmp+147          CALLrel  _ksedst+0           
_ksfdmp.108+e        CALLrel  _ksedmp+0            3
1003387C             CALLreg  00000000             72EB190 3
100EA9AB             CALLrel  10033630             805D5A8 23B77D74 1000 805C6BC
                                                   9
100323C0             CALLreg  00000000             805D5A8 805C670
10066030             CALLrel  10032310             805D5A8 100EA990 805C670 0
                                                   805C254 805C63C 805C640
                                                   FFFFFFFF
---这个dump提示有句sql语句看到没:SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM2) SYNNAM2,             DBMS_JAVA.LONGNAME(SYNTAB) SYNTAB,             TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO      FROM   SYS.EXU9PTS      ORDER  BY SYNTIME
再用dbms_java的包查找同义词,有木有!莫非跟oralce里面某个java的组件有关?遂查看java_pool_size 发现为0,貌似有点头绪了。

解决:

修改java_pool_size为适合大小,我改成10M,再次备份,问题修复!

---相关参考来至chinaunix

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22907091/viewspace-732015/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-07

  • 博文量
    62
  • 访问量
    181058