资讯专栏INFORMATION COLUMN

ORACLE数据库实例发生重启案例分析

IT那活儿 / 1018人阅读
ORACLE数据库实例发生重启案例分析

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!





故障现象



aix主机数据库节点3因大量高并发insert语句导致sql积压,从而短时间内消耗大量主机资源,对数据库性能产生了很大影响,严重影响数据库的正常运行,导致节点3数据库发生重启。





故障分析过程



1. 20点28分左右,收到节点3大量sql积压告警,积压SQL主要为:9yy1zhgjvfbpj。

2. 登陆环境核查数据库实例状态及实例启动时间,20点36分确认数据库实例状态正常,且实例没有重启。当即对异常等待事件的sql进行查杀,但是在20点45分时,节点3发生重启。

3. 立即查看数据库相关日志,并确认数据库日志,发现节点3重启。

4. 核查查看主机日志,并确认无异常报错信息。

节点3主机日志:

5. 通过检查数据库运行状况,发现节点3上有大量sql积压的等待事件,对应等待事件主要为:

enq:us-contention,row cache local行缓存锁;

enq: IV - contention队列等待之询问IV。

  • 关于enq:us-contention官方解释:这个等待事件有许多脱机撤消段,并且工作负载在短时间内开始联机许多撤消段。当使用具有自动调整的撤销保留期的系统管理撤销时,这可能会导致在DC_ROLLBACK_SEGMENTS 上出现高“闩锁:行缓存对象”争用,同时出现高“enq:US-争用”等待。

  • 关于row cache local官方解释:该是一个共享池相关的等待事件。是由于对于字典缓冲的访问造成的。每一个行缓冲队列锁都对应一个特定的数据字典对象,这被叫做队列锁类型,并可以在V$ROWCACHE视图中找到。在AWR中需要查看Dictionary Cache Stats部分用以确定问题。

  • 关于enq: IV - contention官方解释:物化视图(mview)有两部分:(1)保存数据的表,和(2)物化视图日志。当提交mview基表上的DML时,summary对象将失效。这是必要的,因为mview可能需要用于查询重写。失效采用IV排队,直到summary对象在所有节点上失效为止。如果存在大量摘要无效,则会导致此排队上的争用。

6. 通过核查节点3上sql积压等待事件对应的会话信息,定位到积压sql对应的sql_id。

7. 通过sql定位到对应的sql语句。

8. 对故障时间段节点3分析。

故障时间段每秒产生的redo量相比正常时间段增长了约180%。

故障时间段每秒产生redo量:

正常时间段每秒产生redo量:

经核查,发现等待事件异常最早是20点07分。

通过分析故障时间段哪些SQL占用了资源,发现其中sql_id为9yy1zhgjvfbpj的语句占用了数据库48.24%的DB TIME,主机资源突降至10%以下,说明数据库大部分时间都在对这条sql进行处理。

9yy1zhgjvfbpj语句执行频次突增截图:





结  论



sql_id为9yy1zhgjvfbpj的语句因高并发且频次突增,引发数据库序列及undo争用,消耗了大量的数据库资源,导致数据库主机hang住并重启。

后续改进措施:对应用程序进行优化整改,合理调整sql语句发起并发量。



本文作者:周 明

本文来源:IT那活儿(上海新炬王翦团队)

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

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

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

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