ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 3628|回复: 1

[原创] 风险预警·如何预防开发问题流到生产

[复制链接]
认证徽章
论坛徽章:
0
发表于 2017-7-26 14:05 | 显示全部楼层 |阅读模式
前言            好消息!本期,小编终于第一次邀请到了中亦科技数据库团队的老猫(mason)做为我们的分享嘉宾,撒花,兴奋,捂脸!
    老猫,混迹DBA江湖30载有余,小编心中的真正大神级人物,同时也是我们的段子大湿,为我们team和客户带来了无数的欢乐。
    老猫平时行事低调,网上几乎看不到他的文章,说话做事从不啰嗦,文中未尽事宜可加他的微信,masonchen_2015 进一步交流。
    接下来下面我们直接来看看看中亦老猫飘逸的故障处理过程,以及文末从案例分享提炼出来的共性风险提示吧~~
01问题描述
   客户新投业务模块,需要做压力测试,在测试压力并不大的情况下,数据库的性能竟然很差。其中AWR报告显示有大量的异常等待事件,客户首先怀疑的是数据库配置不合理导致的,于是第一时间收集了相关信息发了过来。
02分析中。。。
   首先,我们来看看AWR报告能提供的信息:
1.png
   图中显示10分钟的AWR报告中,DBTime繁忙达到了385分钟,那么真的是从应用端上来的压力太大吗?
   继续检查发现系统的CPU时间还是很低的,可以认为数据库平均才使用0.6颗CPU,大多时间还是花费在了等待上;
2.png
   接下来查看TOP等待事件:
3.png
   主要的等待事件是在cursorin S wait on X和library cache lock上,两项分别占了DBTime的42.8%和32.3%,均与解析相关,此点可以在AWR报告的time model部分中进一步确认:
4.png
   报告中的Load profile告诉我们每秒的硬解析次数达到200次,这个数据一定会出现问题!!!
5.png
03猜测与验证
   压力测试理论上是不应该出现大量硬解析的,老猫猜想是不是应用设计不合理(比如没有使用绑定变量)导致的呢?
6.png
   但是当看到AWR报告中的“Library Cache Activity“部分时,发现SQL AREA部分存在大量的Reloads 和Invalidations时,果断的推翻了之前的猜测。
于是我们进一步收集ASH报告中问题时刻的librarycache lock等待对象的namespace;
7.jpg
   从数据中可以看出:P3值为5373954,将其转换为16进制就是0x520002,将0x52继续转为10进制就是82;
在ASH报告中,问题发生在『SQL AREABUILD』这个NAMESPACE上,这块内存是在构建Child Cursor时请求的,如此频繁地出现,基本可以排除收集统计信息,DDL引致的硬解析,但我们依然要求证!幸运的是,客户DBA非常资深,顺便给了systemstate dump;
从中看到一条关键记录:
8.jpg
   这是一个存储过程,硬解析次数334108次,cursor失效次数334107次,执行次数0次,明显的解析失败。
04疑问与解答
  再回过头来看之前的time model,还是能看到存在的错误解析的情况: 9.png   强调一下:作为一个负责任的第三方运维工程师,必须要要协助客户把问题缩小到最小粒度,才能准确定位硬解析失败的原因。
那么新的问题来了:解析失败,对于一个比较复杂的存储过程来说,我们怎么快速的定位到是什么语句什么原因导致的失败解析呢?
答: oracle提供了一系列的跟踪事件来帮助定位各种问题,下面介绍的这个方式一定可以找到一些event来进行跟踪:
10.jpg
  搞定,原来10035事件可以帮助到我们,那么我们只要在系统级设置上10035事件就可以了:
12.png   因为客户也是一位资深的DBA,主要的原因已经找到,余下的事情自然就不需要我们帮忙,最后他从alert log果然找到了解析错误的SQL,并且解决了问题。
我们学到了什么!
老猫的经验分享完毕,我们可以总结为两点:
  • 根据个人以往的经验,SQL错误在功能测试阶段未必能完全测试完成,特别是一些应用代码中存在着SQL拼接的情况时更是容易出现SQL错误的情况;
  • 通过CASE可以看出,错误SQL带来的影响绝对不仅仅是在功能上的缺失,同时也会对数据库的整体性能产生影响,继而影响测试结论;

综合上述两点,小编给出的建议是:在测试环境中,在系统级开启10035跟踪事件,及时发现错误SQL的情况,才不会影响后续的生产哦~~
那么今天的小分享就先到这里,下期我们将会请来哪位大咖呢~~

求职 : 数据库开发
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09优秀写手
日期:2014-04-23 06:00:19红宝石
日期:2014-06-03 13:13:19
发表于 2017-8-1 10:32 | 显示全部楼层
丝丝入扣,深入探究,强!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表