热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

ORA-07445错误解决一例

测试人员反映说在一台测试库上跑SQL报错了(具体的SQL这里就不说了,总之是很复杂的一个SQL,有9百多行。),错误是:ORA-03113:e

测试人员反映说在一台测试库上跑SQL报错了(具体的SQL这里就不说了,总之是很复杂的一个SQL,有9百多行。),错误是:ORA-03113: e

测试人员反映说在一台测试库上跑SQL报错了(具体的SQL这里就不说了,总之是很复杂的一个SQL,有9百多行。),错误是:

ORA-03113: end-of-file on communication channel

一开始怀疑是不是SQL过于复杂,库不堪重负挂掉了,我们的测试库机器都不怎么好,而且很多都是虚机,而且是一个物理机上跑十几个虚机的那种。。。所以没有理由不怀疑库挂掉的可能性。

连接服务器查看,数据库跑的好好的,监听也正常,没报任何错误。好吧,接下来查看alert log,有错误了:

ORA-07445: exception encountered: core dump [kkqudhus()+756] [SIGSEGV] [Address not mapped to object] [0x000000068] [] []

7445的错误,原因也挺多的,坏块、内存错误、还有Oracle本身的BUG。而且BUG的可能性很大。Oracle也提供了ORA-600/ORA-7445/ORA-700 Error Look-up Tool,这是个很好的工具,输入第一个错误码,系统就会帮你去查找相关的文档:

果不其然,,错误是由Oracle的BUG(BUG:4664788)引起的,同时Oracle提供了两种解决方案:

1、修该隐藏参数_optimizer_cbqt_no_size_restriction为false

2、应用相关补丁。

由于测试人员说有点急,而且也只是测试库,所以这里采用了第一种修改隐藏参数的方法。查看当前隐藏参数的信息:

SQL> select x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf, 7),
1,
\'MODIFIED\',
4,
\'SYSTEM_MOD\',
\'FALSE\') ismod,
decode(bitand(y.ksppstvf, 2), 2, \'TRUE\', \'FALSE\') isadj
from sys.x$ksppi x, sys.x$ksppcv y
where x.inst_id = userenv(\'Instance\')
and y.inst_id = userenv(\'Instance\')
and x.indx = y.indx
and x.ksppinm like \'%_optimizer_cbqt_no_size_restriction%\'
order by translate(x.ksppinm, \' _\', \' \');
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_optimizer_cbqt_no_size_restriction
TRUE
TRUE FALSE FALSE

修改隐藏参数:

SQL> alter system set \"_optimizer_cbqt_no_size_restriction\"=false scope=both;

System altered.

让测试人员重新跑SQL,这次正常执行了。至此问题解决。

本文永久更新链接地址

推荐阅读
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • 本文探讨了在 OpenStack 环境中使用虚拟机部署 Ceph 集群后,外部服务器通过浮动 IP 无法访问该集群的问题,并提供了详细的解决方案。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • 本文详细介绍了在iPhone上设置和配置邮件账户的步骤,包括基础设置、服务器端口调整以及其他个性化选项,帮助用户顺利完成邮件账户的配置。 ... [详细]
  • MySQL 高性能实战教程
    本课程深入探讨 MySQL 的架构、性能调优、索引优化、查询优化及高可用性等关键领域。通过实际案例和详细讲解,帮助学员掌握提升 MySQL 数据库性能的方法与技巧。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
author-avatar
李亞男大宝贝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有