ORACLE RAC集群大范围delete大表与insert&update同时执行导致活动会话数飙升

    2018年6月7日 21:30左右,客户一oracle rac 11.2.0.3集群数据库活动会话数短时间内飙升,经过分析发现,客户应用21:26:00
首先发起对一张12G,6700万条数据的大表进行大范围删除,同时集群2个节点还同时对delete的表进行insert——很奇葩的是,有一
个匿名存储过程块除了有对delete表的insert,还包含对另一张表的update,由于delete执行慢,insert和存储过程被堵塞,还形成了
死锁,最终导致集群数据库活动会话数急速飙升。下面提供详细的分析过程,仅此用来说明客户这一应用设计不合理,也说明oracle
集群运行交叉业务可能导致严重的性能问题。
    环境信息:
    操作系统:HPUNIX
    数据库:oracle 11.2.0.3 rac
    1、oracle OEM监控到的活动会话数飙升图

    2、根据oracle OEM监控显示,集群活动会话数飙升的时间段是2018-06-07 21:20~21:50,据此做2集群2个节点的21:00~22:00

的AWR,集群节点1、2数据库实例1、2数据库负载DB Time分别为21861、23614,说明问题时段实例1、2负载很高,数据库活动会话数从21 :00的

200左右曾至少达到多1745,符合OEM监控显示的问题现象。


    3、查看2个节点的TOP顶级等待事件,发现等待事件enq: TX - row lock contention平均等待时间异常为221600多ms。


    4、审查2个节点的AWR发现节点1 TOP SQL order by CPU Time发现有一条SQL语句9mf3mj1kz45fg,其执行时间911.80秒,消耗
CPU时间占总DBTIME的20.22%。

    5、通过dba_hist_active_session_hitory视图查看sql语句9mf3mj1kz45fg的执行时间为21:26~21:36

    6、进一步查看dba_hist_sess_history等待事件enq: TX - row lock contention的出现时间是2018-6-7 21 :26 :02与delete(9mf3mj1kz45fg
开始执行时间21 :26 :00)语句执行开始时间吻合。

    7、查询问题时段数据库delete:9mf3mj1kz45fg、insert:3qz3ks1zr2w8y、存储过程:gczwn5gn7tbgc执行语句,发现有delete、insert、
匿名存储过程块操作同一张表,后续观察中类似3qz3ks1zr2w8y、0y7a6hjak1x2b的sql语句还有很多。


8、查看delete语句的执行计划,发现表SYMMETRICKEYDBJNL是全表扫描,并且执行时间比较长,消耗CPU资源比较严重。



9、继续调查表SYMMETRICKEYDBJNL发现该表有12G之大,数据量有6700万之多,并且没有索引。



10、到此可知,集群在2018-06-07 21 :26 ~2018-06-07 21 :36 出现活动会话连接数激增的原因是节点1的delete大表阻塞了节
点1、节点2后续发起的操作同张表的insert和嵌套有insert存储过程事务,并且影响到存储过程中对其他表的update操作事务,
最终导致集群数据库连接会话数的飙升。
11、给客户的问题处理建议

    a.对大表delete删除操作,分批次执行,例如一次删除一周的数据,并且执行大范围删除操作的同时尽可能避免同时执行insert
或嵌套有操作相同表的DML语句,否则容易引起死锁。

    b.对大表删除建议先备份,先对需要的数据放入临时表,然后对大表进行truncate,尽可能缩短数据清理操作执行时间。

    c.加强监控力度,及时发现 delete 这种导致数据库性能下降的问题,并建立应急处理机制。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Storage Foundation是Veritas公司开发的一种存储管理软件,用于管理硬盘阵列和存储设备。Oracle RAC(Real Application Clusters)是一种Oracle据库集群技术,用于实现据库的高可用性和性能扩展。当部署Storage Foundation和Oracle RAC集群时,需要考虑以下步骤: 1. 确保硬件和软件要求:在部署之前,需要确认硬件和软件的兼容性,包括操作系统版本、存储设备、网络配置等。 2. 配置存储基础设施:使用Storage Foundation管理存储设备,包括创建和管理卷组、文件系统和存储资源。 3. 安装和配置Oracle RAC:在每个集群节点上安装Oracle软件,并配置Oracle RAC集群环境,包括网络设置、存储配置等。 4. 集成Storage Foundation和Oracle RAC:配置Storage Foundation和Oracle RAC之间的集成,包括使用Veritas Cluster Server实现高可用性、自动故障转移等功能。 5. 测试和优化:完成部署后,需要进行系统测试和性能优化,确保集群的稳定性和性能。 在部署过程中,需要密切合作的存储、据库和系统管理团队,确保各个组件之间的兼容性和顺畅的集成。同时,需要遵循最佳实践和安全性原则,确保集群环境的稳定性和安全性。 总的来说,Storage Foundation和Oracle RAC集群部署需要仔细规划和协调各个团队的工作,确保系统的可用性和性能。这样的集群部署在大型企业级应用中具有重要意义,能够提供高可用性和可伸缩性的据库解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值