ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

处理问题,需要缕清思路

2021-10-27 15:00:52  阅读:224  来源: 互联网

标签:操作系统 诊断 处理 数据库 信息 问题 找到 缕清 思路


第1步 明确问题 

对问题需要做到4W(What:现象、When:时间、Where:范围 、Who:影响)

好的开始便是成功的一半,通过理清这些问题,部分问题原因和答案可能会已经跃然纸上了。

 

第2步 分析和诊断

分析和诊断性能问题包括一系列的行动计划,数据和信息收集,分析和调查。

新手处理思路:新手一般面对问题,开始收集各种信息资料,尝试各种方法,甚至在一个处理思路上钻牛角尖,从而不利于问题解决。

高手处理思路:在确认和理清问题后,会提出相对靠谱的处理方案或指明问题处理方向(同样也是需要资深专家的经验支撑)。

问题的处理能力:对于(数据库性能问题)诊断的处理能力,可以总结几个方面:

1、知识架构的系统性(广度)。

2、某一领域知识点的理解程度(深度)。

3、经验和时间积累的问题敏感度。

知识不等同于信息,只有将信息经过思考和处理才能将信息转变成自己的知识。

对于知识的系统性即广度而言,需要在系统的学习,读书,参加培训过程中,具有开放的绿灯思维,保持各种新事物的好奇心,对接触到的信息内容不断整理和拓展;

对于知识的理解即深度而言,则需要在知识的重复性学习和解决问题的过程中,不断自己动手测试验伪,追溯本源回归原理;

对于问题的敏感度,则是一种综合能力,需要在前两点的基础上,通过经验积累和有意识地磨炼。

 

思考方法:

作为一般的思考方法,可以通过有效的联想,基于基本原理和特定场景,深入本质,找出已知信息和未知变量之间的联系;

如果不能找到直接的关系,再进行联想,普遍化或特殊化相关类似问题,保留一部分已知信息再进行抽象的摸索,找到思路,适当的休息,让右脑工作也能起到意想不到的效果。

然后可以通过规范的流程,对已确定的内容回顾和重新整理思路,缩小问题范围,找到突破点,并找到最终的原因。

 

数据库性能诊断清单:

对于数据库性能问题,我们通常采取自上而下的方法进行诊断,

 

 1、80%以上的问题是由于应用导致的,所以在遇到数据库性能问题时,首先要从应用程序和应用状况入手,看看发生问题时或之前,是否有相关的应用或设置变更等,

对于数据库来说比如参数修改,表或索引的变更,大量的修改删除或错误的应用导致的连接风暴等。

2、对于一台服务器而言,包括硬件和软件;软件又可以细分为操作系统和操作系统上应用软件,数据库只是操作系统上应用软件的一个应用软件而已。 当操作系统整体较慢时,作为应用软件的数据库自然也会受到影响,成为被害者而性能低下。

所以,当我们遇到服务器的CPU/内存/I/O等资源的使用率较高时,首先要通过OSWatcher或TOP等OS命令弄清楚到底是什么应用在占用大量的CPU/内存/I/O等?这里的“罪魁祸首”可能是Oracle数据库的操作,也可能是操作系统本身进程或者其他应用软件(如杀毒软件,备份软件等)。

3、如果操作系统层面没有问题的话,则需要看一看是整个数据库实例慢还是挂起(Hang/Spin)状态。 如果是数据库实例慢,我们可以通过AWR/Statspack/ASH/动态试图等数据库工具来确认数据库整体性能是否真的有问题以及进一步缩小一下问题的范围。 需要注意的是,所谓的是否有问题的标准时相对的,要参考平时的负荷状态以及事先建立的基线等。 如果是挂起(Hang/Spin)状态,最好第一时间取得hanganalyze和systemstate dump信息,以便找到根本原因。

4、如果能够找到某些特定的进程或会话占用大量DB时间,我们可以基于进程的信息来分析和诊断,看看是后台进程还是前台进程有问题, 如果是后台进程的话,可能和数据库内部运行程序本身相关,如果前台进程则可能是用户的应用程序有问题。

5、如果能够定位某条SQL语句,可以确认问题在于SQL的哪个执行阶段(Parse?Executing?Fetch?),执行计划是否改变?我们可能会去SQL Trace 或者Optimizer Trace进一步诊断。

 

分析问题是一个循环的过程:理清问题后最初的灵感开始,收集数据,确认信息,重新思考/调查,找到突破点,提出行动方案,验证和测试,收集更多信息,重复直至最终找到问题原因。

 

定位原因

 

通过上面步骤循环,我们可能找到“我们认为”的问题原因,但由于人的思维习惯,很容易很多的“想当然”,存在认知偏差和条件反射。

所以下结论前,我们还是要重新斟酌,想想导致问题发生的数据库运行基本原理,并结合用户的环境,形成一个证据链,通过相应的事实和理由来证实,确实是我们指出的原因导致现象发生。

这其实是一个最重要的环节,就像是法官的举证和审判。

 

第三步:

作为分析诊断问题三板斧的最后一板斧,则是根据原有找到最佳的解决方案。

 

解决方案三要素:

做什么(what),为什么(why),怎么办(how)

做什么:就是根据上一步找到的问题原因定制解决方案,这个部分中,我们要考虑充分,尽可能的想出所有解决草案。

为什么:是论证解决方案的部分,我们要根据基本原理和经验案例或测试来论证方案的有效性。

怎么办:最后一步是依靠我们的专业性,提出最佳的解决方案,所谓最佳解决方案是在理解用户业务和技术影响的基础上,在当前情景中找到影响最小,最有效果的解决方法,另外,为了适用与不同水平的客户和减少追加问题,我们需要给出具体的详细的实施步骤。

 

 

 

注:本文摘自 oracle降龙十八掌,“书读百遍,其义自见,书写百遍,其义亲见。”

标签:操作系统,诊断,处理,数据库,信息,问题,找到,缕清,思路
来源: https://www.cnblogs.com/dadaoqie/p/15468770.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有