加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

记一次生产环境卡顿优化过程--大事务并发回滚

发布时间:2019-08-15 18:35:45 所属栏目:MySql教程 来源:波波说运维
导读:副标题#e# 概述 最近生产环境有这么个现象,平时的订单调度只需要2s内可以出结果,但是多个人调度就会卡住,超过15分钟都没有结果出来,有时还会失败然后导致数据不准确。 下面记录一下生产环境卡顿时排查的过程。 1、获取ASH报告 SQL@?/rdbms/admin/ashrpt

即smon进程在做大事务的回滚,默认参数fast_start_parallel_rollback参数为low,即回滚时会启动2*CPU个数 个并发进程。而由于是使用并发,所以可能由于并发之间相互使用共同的资源,导致回滚速度更慢。因为是生产环境,不能随便重启,所以我用了下面的方法来修改这个参数:

1.查找smon进程ID

  1. select pid,spid,pname,username,tracefile from v$process where pname='SMON' 
记一次生产环境卡顿优化过程--大事务并发回滚

2.禁用smon进程的事务清理(Disable SMON transaction cleanup)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2.  oradebug event 10513 trace name context forever, level 2 
记一次生产环境卡顿优化过程--大事务并发回滚

3.查询V$FAST_START_SERVERS视图,将所有smon启用的并发进程杀掉

记一次生产环境卡顿优化过程--大事务并发回滚

4.修改fast_start_parallel_rollback参数

  1. alter system set fast_start_parallel_rollback=false; 

5.启用smon进程的事务清理(enable transaction recovery)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2. oradebug event 10513 trace name context off 

6.获得tracefile name

  1. oradebug tracefile_name 
记一次生产环境卡顿优化过程--大事务并发回滚

7.验证

记一次生产环境卡顿优化过程--大事务并发回滚

4、业务验证

修改后去业务验证,到高峰期还是有卡顿现象,不过频率减少了很多,报错之类的也没有了,同时观察新的报告可以发现并发回滚之类的等待事件已经没有了。

【编辑推荐】

  1. 四种分布式数据库场景选型、优缺点对比分析和未来展望
  2. 到底选择PostgreSOL还是MySQL?看这里
  3. MySQL:常用的30种SQL查询语句优化方法
  4. SQLite使用内存数据库
  5. 到底选择SQL还是NoSQL?看这里!
【责任编辑:华轩 TEL:(010)68476606】
点赞 0

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读