MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 数据库 / 正文

DBA日记之Oracle数据库大量ORA-07445错误

2024-11-26 18:06 huorong 数据库 6 ℃ 0 评论

今天接到客户紧急电话,说是业务系统宕机,远程直接登录客户系统,查看系统日志发现数据库异常关机,伴随有大量ORA-07445,以下是具体的分析。

ORA-07445错误日志

错误直接贴上来,可读性差,就采用了截图


查看具体的dump日志,发现有一个表更新的时候出现大量的绑定变量,立即想到数据库默认的绑定变量限制在65535, 通过查询Oracle MOS确认,发现是oracle内部的一个bug。

以下是业务表的更新SQL:

原因分析

我直接贴上Oracle官方的描述:

Instance terminated due to ora-7445 [opiaba] which leads to ora-600 [17147]. ora-7445 [opiaba] error is reported due to the use of more than 65535 binds in the same sql / plsql statement. You may find some or all of the following function codes in the 'Call Stack' portion of the trace file:opiaba opiprs rpiswu2 kksLoadChild kxsGetRuntimeLock kksfbc。

This scenario is reported in bug 13973845 which is closed of duplicated bug 12578873.

解决方案

oracle建议打补丁12578873, 另外谨慎点,可以建议后端研发修改代码,同一个SQL 避免出现大量的绑定变量。

Please download and install patch 12578873. Bug is fixed in Windows Bundle 13 (Patch 20263424) for 11.2.0.4. Workaround is to modify your application to use less than 65535 binds.Please note bug fix will only prevent instance termination but will not allow the use of more than 65535 binds in the same sql / plsql statement. You have to use less than 65535 binds in the same sql / plsql statement.

Tags:oracle错误

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言