一次“峰回路转”的troubleshooting经历
某天,用户现场人员找到我,说应用的某个功能一点就报错,在数据库上直接跑功能对应的SQL也报错,SQL大致如下:
后来向他们要了alert.log和trace files,通过分析,确定为用户数据库版本的一个bug(Bug 9894940 ),要解决该bug,要么升级,而且还是大版本升级,要么workaround,心中窃喜,幸好还提供了一个workaround,就是关掉一个隐含参数,评估该参数对系统影响不大,且可以在线修改,于是告诉用户:
用户很快就修改好了,于是我信心满满的说,你们试试吧,结果他们试了很多次,还是不行,这些真是有点摸不着头脑,难道我定位这个bug错了,因为用户的这个版本不是10G的最终稳定版本,涉及的bug会多些,定位错了也是有可能的,虽然不太相信自己分析错了,但用户那边火上房般的催。。。,没办法,想个其他办法解决吧。既然该bug是因为执行计划导致的,那么就想办法改变执行计划吧,考虑不展开view,加hint:no_merge改变了执行计划,并成功绕过了bug,因此,SQL改成了:
试了下,性能比之前稍差,但用户表示可以接受,毕竟总比不能用强,而且性能也不是差很多,于是,用户协调研发改程序,然后发补丁修正该问题,然后,说了些感谢之类的话。因加hint前后的执行计划很长,达上百行,这里就不贴出了。
本以为问题该解决了,没想到第二天,用户的现场和研发人员又找到我评理,了解了下,才知道,原来研发懒得改程序,后来试了下,说原来的SQL也不报错了,而且用户应用点击该功能也不再报错,而现场人员希望研发按照我说的修改程序,并尽快打上补丁,说如果不修改,担心会不稳定,说不定什么时候又不行了。结果,他们双方都坚持自己的观点,相持不下,后来找到我,问问怎么办?我让他们取了原SQL的计划,看了下,和之前一模一样,没发生什么变化,又让他们试了多次,说应用和直接跑SQL都不报错了,开始有些纳闷儿,后来忽然想到昨天修改的那个参数,难道是那个参数当时没起作用,后来起了作用?考虑再三,建议用户先不改程序,继续观察再说。
唉,高科技就是高科技啊,连数据库都懂得耍花招了,修改了参数,要拖到第二天才起作用。该问题至今已有近半年时间,没再发生问题。
关于该问题更详细信息或不明之处,可到本人QQ空间或与作者交流。
一次“峰回路转”的troubleshooting经历的更多相关文章
- 记一次troubleshooting(一):奇慢的脚本
背景: 事情发生的时间是几年前,那时刚从windows server运维的部门调动过来,对linux和数据库还是处于一知半解的状态. 领导找过来说:前任遗留下来的问题你来调查一下,有个客户说他们的日次 ...
- FastDFS并发会有bug,其实我也不太信?- 一次并发问题的排查经历
前一段时间,业务部门同事反馈在一次生产服务器升级之后,POS消费上传小票业务偶现异常,上传小票业务有重试机制,有些重试三次也不会成功,他们排查了一下没有找到原因,希望架构部帮忙解决. 公司使用的是Fa ...
- 应用交付工程师Troubleshooting经验分享
应用交付工程师Troubleshooting经验分享 来源:http://blog.51cto.com/virtualadc/1188328 来源:http://blog.51cto.com/virt ...
- H5拍照应用开发经历的那些坑儿
一.项目简介 1.1.项目背景:这是一个在移动终端创新应用的项目,用户在浏览器端(微信/手Q)即可完成与金秀贤的合影,希望通过这样一种趣味体验,引发用户的分享与转发的热潮. 1.2.系统要求:ios6 ...
- 记2016腾讯 TST 校招面试经历,电面、笔试写代码、技术面、hr面,共5轮
(出处:http://www.cnblogs.com/linguanh/) 前序: 距离 2016 腾讯 TST 校招面试结束已经5天了,3月27日至今,目前还在等待消息.从投简历到两轮电面,再到被 ...
- 阿里提前批校招内推offer经历
经过一个半月的阿里内推面试,今天终于收到了阿里的offer邮件 .阿里的内推面试一共有四轮,本人是7月19号投的内推邮件,8月28号收到了offer的邮件.首先本人谈谈内推的看法.内推是公司招聘人才的 ...
- Ubuntu服务器被黑经历(ElastichSearch漏洞)
起因 最近我们的一台Ubuntu阿里云服务器一直提示有肉鸡行为,提示了好几天,开始并没有关注,然后连续几天后发现应该是个大问题啊.很可能服务被侵入了!!! 寻找线索 一开始我是完全懵逼的状态的,Lin ...
- network issue troubleshooting
Today we troubleshooting a lot of network issue by using commands like: ping <ip>/<computer ...
- CVTE实习求职经历
今天,听到有好多同学最近要去面试CVTE这家企业,于是呢,准备将自己的经历写上来,给大家一个参考,希望能够大家一次帮助. 一.整体感觉 首先呢,先讲一下我个人对这家企业的整体感觉吧. 1. 第一次 对 ...
随机推荐
- BaaS 的由来(1)
百度百科是这么定义的, BaaS(后端即服务:Backend as a Service)公司为移动应用开发者提供整合云后端的边界服务.其实不仅是移动应用,现在更多的PC应用也同样适用移动端的标准. 在 ...
- jqgrid 单元格引入时间datepicker控件
简述原理:引入jquery-ui插件,设置好表格所需的字段变量以及字段属性1.设置colName与colModel colNames: ['过期时间''] colModel:[{ name ...
- A+B for Input-Output Practice (VI)
#include<iostream> using namespace std; void main() { int b,c,sum=0; while(scanf("%d" ...
- EasyUI 二次加载toolbar异常问题解决
问题:easyUI初次渲染正常,之后会出问题,toolbar重复加载 解决办法:每次加载之前先从body中删除已经渲染的工具栏-->重新加载-->手动渲染工具栏 代码: function ...
- WordPress让文本小工具支持简码
WordPress 的 “文本” 小工具是非常常用的,可以添加一些自定义的文本或者 Html 代码.但很多时候,我们需要在文本小工具里使用简码来添加一些更加丰富的内容. 默认情况下,文本小工具是不支持 ...
- Python 从入门到入门基础练习十五题
**a) 6.成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于60的输出"pass",否则输出"fail",成绩不四舍五入. a = ...
- svn版本提交冲突问题解决详解
svn冲突文件解决方法 工具/原料 svn客户端 方法/步骤 1 通过SVN客户端更新需要的文件,如果出现有感叹号的文件,找到出现感叹号的文件. 2 选择感叹号文件,即冲突文件,单击鼠标右 ...
- POJ 1979 DFS
题目链接:http://poj.org/problem?id=1979 #include<cstring> #include<iostream> using namespace ...
- 【Python】 日志管理logging
logging *****本文参考了http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html ■ 最最基本的用法 logging模块用 ...
- Android学习笔记2——shape
Android有很多特别的xml文件,如常用的selector.style以及shape,熟练使用这些xml可以是我们的项目变得更个性化. 一.子标签(corners.gradient.padding ...