资讯专栏INFORMATION COLUMN

数据库hang故障分析

IT那活儿 / 2720人阅读
数据库hang故障分析
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

故障简述

1.1 知识点描述

应用19.13PSU后,疑似触发数据库内存Bug 32940955以及BUG 33415279、BUG 33225584,导致数据库hang住。
1.2 问题处理简述
中午11:43收到告警,数据库节点1出现断连告警,立即登入系统进行检查,发现数据库整个hang住,两个节点实例均无法执行查询等操作。进一步检查数据库日志,发现频繁报ORA-04031错误。
为了快速恢复业务,尝试进行杀会话,情况没有明显好转,12点15分经客户同意后停掉节点1的实例,随后实例2恢复正常,并重新拉起节点1实例。
12:23左右,节点1再次出现严重性能问题,内存资源不足,alert日志出现IO ERROR:无法打开磁盘,导致无法进行IO读写,节点1发生实例重启,重启后,性能问题未解决。

再次经客户同意后,在12点33分对节点1实例进行停止,随后节点2恢复正常,在12:45尝试手动拉起节点1实例,所有节点均恢复正常状态。在13:26手动拉起节点1监听,至此所有节点均恢复正常访问。


标准指导操作

2.1 故障过程回溯分析
1)等待事件分析
事后回溯分析,发现节点1 在11:33左右突然出现大量library cache相关等待事件:
2)主机资源使用情况分析
查看osw,确认故障前主机资源正常。
3)应用会话连接分析及相关时间点的等待事件记录
11:33左右开始连到数据库的应用会话数明显突增:
查看等待事件发现主要是latch: shared pool等待事件:
4)后台日志记录分析
查看DB ALERT日志发现大量ORA-4031报错。
继续查看db alert日志发现11:43:33开始pmon进程获取latch一直失败,12:15:17由于pmon进程挂死导致实例宕掉。
5)Trace日志分析
查看pmon trace日志发现pmon一直在等待内存分配。
6)IO性能分析
检查12:23 alert日志出现IO ERROR:无法打开磁盘。
12点33分左右,有严重的IO性能问题,经分析为内存资源耗尽导致IO性能严重下降。
2.2 故障总结
查询资料文档发现,应用19.13PSU后,疑似触发数据库内存Bug 32940955以及BUG 33415279、BUG 33225584。
2.3 后续处理措施
1)打patch 32940955,让"so private sga"分布到各个Sub Pool里去。
2)打patch 33415279,避免"pga accounting"的内存泄漏。
3)patch 33225584,解决了共享池内存释放的调用kghfrunp时超过1秒的 latch: shared pool 等待的问题。

4)需设置如下2个隐含参数

  • "_dlm_stats_collect"=0 :关闭DLM Statistics Collection功能以减少KJSC rnb slots内存组件对shared pool空间的占用。
  • "_shared_pool_reserved_pct"=15 : 建议设置10%~15%之间,增大reserve pool的size,对于超过4.4KB的内存请求是有益处的。




本文作者:胡周盼(上海新炬王翦团队)

本文来源:“IT那活儿”公众号


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129263.html

相关文章

  • 阿里云出现大规模故障 “多云”部署或成趋势

    摘要:昨天凌晨,阿里云出现大规模故障,导致部分互联网公司和运行不畅,甚至瘫痪。阿里云表示,针对此次故障,将根据协议,尽快处理赔偿事宜,但并未公开详细的赔偿细节。事实上,这并非阿里云首次出现故障。由此可见,阿里云此次宕机事件影响程度着实不小。昨天凌晨,阿里云出现大规模故障,导致部分互联网公司和App运行不畅,甚至瘫痪。一时之间,阿里云官微下几乎被反馈宕机问题的留言攻陷,有网友调侃称,程序员、运营和运...

    xiaodao 评论0 收藏0
  • 阿里云宕机启示录:多云战略成趋势,云服务技术是决胜关键

    摘要:对此,阿里云官方回应称,宕机原因为,华北地域可用区部分服务器等实例出现,后经紧急排查处理后逐步恢复。这也意味着,在未来的云服务竞争中,云服务供应商的技术能力仍将是决胜关键。在多云战略时代,带领企业走出恐慌区,扩大学习区是关键。随着上云企业的越来越多,云服务宕机带来了潜在风险也越来越大。 昨天(3月3日)凌晨,没有任何征兆,阿里云出现大规模宕机故障,华北地区很多互联网公司都受波及,一大波...

    Ilikewhite 评论0 收藏0
  • ES6-Promise

    摘要:方法没有设置返回值。解决思路是,当遇到任务的返回值是一个或者,并且有自己的方法的时候,就将它当做是一个对象处理,等这个对象中的方法处理到的时候,把作为参数输出传递给后续的任务。 前段时间看到关于microTask的文章,《Tasks, microTasks, queues and schedules》,感觉有必要澄清一下。本篇里用setTimeout来实现的Promise,和浏览器原生...

    dackel 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<