数据库版本:10.2.0.4
OS类型:Linux 5
编译package时报错ORA-03113: end-of-file on communication channel并直接失去连接,alert.log中发现下面报错
ORA-07445: exception encountered: core dump [ptmak()+107] [SIGSEGV] [Address not mapped to object] [0x8] [] []
oracle解决方案为:
1.修改数据库参数
plsql_debug=true
2.生成SQL并执行
set heading off
set pages 0
set feedback off
spool compiledebug.sql
select 'alter ' || type || ' ' || owner || '.' || name || ' compile;'
from all_plsql_object_settings
where plsql_debug = 'TRUE' and type!='PACKAGE BODY' ;
select 'alter package ' || owner || '.' || name || ' compile body;'
from all_plsql_object_settings
where plsql_debug = 'TRUE' and type='PACKAGE BODY' ;
spool off
补充:
跟踪这个bug的最终原因为oracle在编译package的时候会生成SYS_PLSQL_+数字的type,当这个数字出现重复的时候就会报上面的,oracle提供的解决方案不一定有效,最有效的方法是把这个用户下面的所有type删除,再进行编译, 发现只有10.2.0.4会出现这个问题,在10.2.0.5已经解决了这个bug
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21605631/viewspace-710298/ ,如需转载,请注明出处,否则将追究法律责任。