故障现象
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语句发起并发量。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129595.html
阅读 1235·2023-01-11 13:20
阅读 1543·2023-01-11 13:20
阅读 996·2023-01-11 13:20
阅读 1651·2023-01-11 13:20
阅读 3958·2023-01-11 13:20
阅读 2456·2023-01-11 13:20
阅读 1290·2023-01-11 13:20
阅读 3454·2023-01-11 13:20