ORA-07445 [kgldpo0()+1505] [Address not mapped to object]

os:linux 2.6.32
db:oracle 11.2.0.4 rac

开发人员发现财务系统的一个存储过程不能编译,一点击编译就报错ORA-03113:通信通道的文件结束。

看到这个错误,我第一反应是plsql developer跟数据库之间的连接存在问题,建议开发将plsql developer中的连接全部重新断开,重新连接一次数据库,但是开发说错误依旧,然后dba运维接手处理该错误。
1、用alter命令在plsql developer工具和sqlplus工具编译也报错
2、将存储过程源码在sqlplus上尝试执行,还是报错
3、换个名字继续编译,报错
4、这个7445错误让我想起了之前遇到的一个类似问题:数据库alert日志中报告了一个错误洪水ORA-03137: TTC 协议内部错误: [12333] [253] [1] [253] [] [] [] [],大量的进程都报这个错误,当时查找出来的问题是因为开发在后台编译了某些对象,导致连接池中跟这些对象有关联的连接报错。这个7445的也类似,再联想到昨天进行过数据库用户权限回收,猜测这个错误也是由sql解析编译引起的。
5、根据错误信息Address not mapped to object猜测是内存中缓存的对象出了问题,编译过程中引用了内存中一个不存在或者已经失效的对象,而这个对象还不能刷出内存,每次编译或者改名字编译都报错。
6、对比call stack发现报错时的调用函数是kgldpo,这个应该是kgl+dpo也就是dependence object
kgldpo0()+1505       signal   __sighandler()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值