数据库环境

系统红旗linux 7.3,内存大页设置。SGA稍微小于内存大页设置,PGA设置250G。主机内存1T。

数据库版本11.2.0.4.16xxxx

现象

早晨期间,每次跑起存储过程,就会出现ORA-00445
我们通过OEM来观察的,每天只要这个存储过程启动以后,OEM就会出现断掉。过半小时就会启动。
zabbix观察发现有断掉的问题。

检查步骤

  1. 确认时间段发生问题5-8点
  2. AWR报告是否正常收集,没有正常收集。
  3. 是否有ORA报错,有
  4. 是否能生成awr报告,能收集5-8点的AWR报告
  5. zabbix告警 的CUP IO等是否正常,否,该时间段有断开
  6. oem查询怎样,oem查询agent有断开,说明这个时间段内存有可能有问题,导致内存不足。
  7. 后台日志查询ORA-00445这个产生的日志,发现内存确实不足。
  8. 查看等待事件次数,确定哪条最多。经过确认发现。

问题解决

确定了该时间段出现的SQL。对其进行分析。发现 直接采用了parallel(t)。这个存储过程已启动,就出现了问题。
建议修改成parallel(t,4) 问题解决。

问题总结

该问题为SQL跑报表过程中,没有进行优化,直接hash查询,采用parallel,并没有合理设置导致。
parallel的机制,由于跳过了SGA写入,直接写入PGA,PGA超过了内存限度导致。

SQL优化的过程中,应该详细分析报错日志,反过来查看SQL,这样就能快速定位。尤其是出现了IO忽然降下来的情况,一般都是parallel参数设置不合理导致的内存爆满,IO无法写入导致。

©著作权归作者所有:来自51CTO博客作者李石岩的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. 内存管理思想
  2. 浅谈Java:Volatile浅析
  3. 如何处理Linux服务器内存过高?
  4. 干货丨手把手教你如何加载和操作DolphinDB内存分区表
  5. 对vSAN使用较小的磁盘大小可能会导致VM故障
  6. 深入理解 JVM 的 GC overhead limit exceeded 错误!
  7. Volatile原理概述
  8. PHP 共享内存使用场景及注意点
  9. Redis 内存为什么不宜过大

随机推荐

  1. Android Studio 4.0 新功能之 AndroidKot
  2. arcgis for android常见问题回答
  3. Android UI设计--半透明效果对话框及acti
  4. android 横竖屏限制如何配置
  5. Android Studio 错误 Duplicate files co
  6. Android Gradle 指南
  7. Android -- adb devices找不到设备的解决
  8. Android横竖屏总结(转)
  9. android.net.wifi Kotlin |Java
  10. Android中使用XmlPullParse解析xml文件