已索引

找到问题解决办法的途径是多种多样的,但都有遵循类似的逻辑方法。

1. State the Problem

对问题进行描述。应该准确具体地描述问题,而不是笼统而含糊。例如,“我的数据库很慢”就是一个糟糕的描述。那么,是今天忽然变慢还是一直都很慢(直至今天已经实在不能忍受了)?是局部慢还是整个系统都慢?另一个典型的糟糕描述就是“我的数据库崩了”,“崩”这个词在不同的人看来有不同的含义,是数据库负载太高运行太慢?还是数据库不能连接?或者数据库突然关闭不能启动?或者数据文件丢失?

2. Clarify Problem Statement

对问题描述做进一步澄清。

  • 对问题描述作简要地澄清,比如问题的产生与影响。
  • 对问题描述作具体地澄清,比如问题涉及到的具体组件。
  • 对问题描述作逻辑地澄清,比如产生问题的事件之间的先后顺序。

3. Classify Problem Type

确定问题类型。比如,我们现在已经确定是数据库响应缓慢,那么,数据库响应缓慢可能由多种原因造成,可能是IO的问题,也可能是锁的问题。这儿,我们要去确定问题的类型。

4. Gather Evidence to Verify Problem

收集证据来核实问题。比如上面我们认为是锁的问题,那么就要通过 v$lock, v$session视图或者其它手段来核实是锁的问题。如果不能有效的核实问题,可能当前的问题描述是存在偏差的,则需要回到第1步重新对问题进行描述。

5. Gather Detailed Evidence

上前面的基础之上,基于可能的原因,去收集更加详细的证据来核实问题。

6. Prove/Disprove Cause

通过收集到的各种数据,来证明产生问题的原因是否成立。

7. Identify Solutions

列出可能的解决方案,给出解决方案时要同时考虑用户的目标与需求,比如客户的当机时间,客户的维护窗口等。

8. Implement "best" Solution

在综合考虑技术实施难度,客户目标与需求的前提下,选择实施最佳的解决方案。

9. Test Solution

测试解决方案。如果问题并未得到解决或者产生了新的问题,则回到第1步进行新的问题描述。

-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 02 月 06 日 04 : 22 PM
如果觉得我的文章对你有用,请随意赞赏