又zuihou一次Oracle数据库

故障回顾

IT领域有个严重性的问题,它的名字叫“故障”。IT管理人员时刻需要与“故障”抗争,当企业离不开IT的时候,必需为生存寻找隐藏其后的致命弱点,因为各种故障随时都可能正在发生。

IT运维管理部门的真正价值并不是出现故障之后的处理,而是在故障发生前能够准确判断,排除隐患,并避免故障的发生。以下是来自某运维团队在核心数据库发生第二次严重夯死故障后,出具的一份详尽的故障分析报告:

继8月初数据库夯死故障紧急重启后,运维团队过了几天安稳日子,原定的各项调优计划都在张罗之中,月内的维优计划是搭乘月末的系统升级窗口,进行四个数据库节点主机重启。

但是,有时候就是这么点背。明天和意外,你永远不知道哪个会先来。多年以后,DBA摸着白胡子在小院里晒太阳时,准会想起他带头处理故障的那个遥远的中午。

在预定维优计划升级前一天中午12点25分,系统前台又无故出现大面积的白屏、卡顿、业务办理失败。

与此同时,运维团队也收到了数据库二节点的Pagingspace使用率告警,饭都没吃完的运维团队,立马往办公室跑。

12点30分,运维团队赶到现场着手排查处理问题,发现二节点DB严重夯死,一节点也出现大量的连接等待和超时,此时大家闻到了熟悉的味道——数据库夯死“噩梦重现”。结合第一次故障排查缺失信息的经验教训,DBA和主机管理员首先对运行态日志、内存信息进行了保存,然后着手实施紧急恢复操作。

12点40分,团队实施夯死紧急预案,对数据库主机进行了“心肺复苏”操作——重启数据库节点。DBA陆续对三节点、四节点、二节点、一节点进行停止数据库监听、查杀监听连接等操作。

13点8分,因几个节点的监听连接全部断开,会话压力释放。二节点夯死故障缓解,一节点可以登录。运维团队重启了一节点数据库,数据库重启耗时10分钟。

13点18分,数据库重启完成,继而对各应用软件、服务进行重启,服务及应用平台重启耗时30分钟。

13点48分,重启完成后,前台业务全部恢复。其中数据库故障至重启历时60分钟,业务故障至全部恢复,历时83分钟。

故障分析

故障紧急恢复后,运维团队陷入了极大的焦虑与挫败感。这么严重级别的故障,别说一个月两次,在近几年也是从未发生过的。

为确保系统快速恢复稳定,运维团队在8月22日-8月28日进行了Oralebug修复、数据库主机重启等紧急优化措施。为确保能尽快追根溯源、排查解决根因,规避故障再次发生。运维团队紧急协调了Oracle原厂专家、数据库代维厂商专家、应用集成商的运维专家、以及IBM硬件专家全部第二天到场,进行问题定位处理,同时,现场团队7*24小时对数据库和前台业务进行监控保障。

经过48小时的各方联合会诊,这两次数据库严重夯死故障的原因分析结论如下:

故障直接原因分析:

数据库物理主机内存资源不足,可用内存太少,在遭受短时间内连接大幅增长的请求风暴后,主机内存快速耗尽,后续使用交换区内存时,系统IO性能急剧下降,数据库队列请求大量长时间积压引发夯死Bug。

通过分析内存和运行日志,发现二节点上调度的批量业务对内存的短时间大量占用,是导致本次主机内存耗尽,进而引发数据库夯死的直接原因。

根因分析:

批量任务虽然是导致数据库夯死的直接原因,但冰冻三尺非一日之寒。作为压死骆驼的最后一根稻草,不应该承担全部责任。

为进一步排查内存高占用和耗尽的原因,运维团队顺藤摸瓜,从系统架构、业务操作、运维监控等多方面进行了分析。内存大量占用、导致数据库夯死的关键原因包括以下方面:

①分布式路由管理的配置及管理:分布式路由管理的优势在于将SQL解析为语法树,支持异构数据透明访问接口,实现水平/垂直分库和高并发、支持读数据负载和多级路由、以及连接的弹性伸缩扩容。但本次故障分析时发现,管理器的连接数配置较大,日常业务请求不大的时候,也预占大量连接数。运维开发团队不掌握后台连接和前台业务的对应关系,遇紧急情况时无法针对业务优先级进行选择性的业务连接断开。

②系统部署架构:当前业务部署架构,为同城双中心部署,一节点主要承载省会/全网业务,二节点主要承载其他地市业务,三四节点承载外围接口/后台批量业务,一二节点负载长时间较高,部署架构是否合理,需进一步研判。

③系统监控告警不足:当前主机内存可用量的监控阈值为交换区内存使用时触发告警,但交换分区内存使用时,数据库性能已受到严重影响。对数据库主机内存使用的







































北京中科医院是假的吗
广州治白癜风最好的医院



转载请注明:http://www.xcqg58.com/bcxx/7629.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了