DB2故障诊断教程
上一篇 / 下一篇 2008-04-21 17:35:18 / 个人分类:db2
1.故障描述
ztHhq:B/gSb2F0正确描述你所遇到的故障,是解决问题或者寻求帮助的前提,你需要注意以下几个问题:ITPUB个人空间n3T}cy!g/]9H9j,]
N0[J8Y Ow[ n(A0
o H/K%a4z9r0rH0故障是什么?ITPUB个人空间6aEgx^1Ky2v,U
故障发生在哪里?ITPUB个人空间[2[U(irD}6J`
故障什么时候发生的?ITPUB个人空间!lp HzFcq
故障是在哪种情况下发生的?
oN T5m-g \X-?h0是否故障可以重现?
]z5^ mS@%FS
q
Y4u0
i9bx h"jn6fh0ITPUB个人空间)|_ }-w"M5t-u-?(g
如果你是一个技术支持人员(就像我一样),你肯定会遇到一些用户,他们在遇到问题的时候,拿起电话就对你说:“我的系统坏了,请赶快过来!”。他不能给你任何信息来帮助你分析问题,你必须耐心的问完上面所提到的那几个问题。ITPUB个人空间A:iV
p6}
ITPUB个人空间P3L7v?7s
对于“故障是什么?”这个问题,可以由以下几个方面来回答:谁遇到问题,现象是什么,是否影响应用。比如一个客户报告“我的应用失败了”。你可以问“你的应用是什么,它在处理什么操作”,比如客户回答“这个应用是处理薪水信息的,它的日志显示一个SQL INSERT操作多次失败,返回值是SQLCODE SQL0289N”。这个SQL0289N将是你处理问题的重要信息。ITPUB个人空间;f}5_]FB
ITPUB个人空间:_5Z,J9w2P9f#if8E
ITPUB个人空间$Xs
CF%Y0ZA
x#\
要找到故障发生的根源并非易事,这是因为在现象和故障之间可能存在很多层次,另外网络、硬盘、驱动程序也是需要考虑的。如果应用是在本地的,那么我们就不需要考虑网络的问题,反之就要考虑网络方面的问题。这个问题我们将在后面给予更详细的说明,这里先暂停一下。ITPUB个人空间-_U4C6W:h{&{n8Y
ITPUB个人空间$C4\@ja~0}2L.Q
ITPUB个人空间J9jfQ)eEY
提供故障方式的具体时间,有利于支持人员通过log来查找故障的具体信息,特别是只发生一次的故障。如果故障出现了多次,那么我们需要考虑:是否故障定时出现,是否存在自动执行的脚本或者cron job.
7z/gV6r5FU-K6EkK0ITPUB个人空间4s)LXIn
a"]"nuF
ITPUB个人空间[S8~1B-{a#Zf"u \
什么情况下才会出现故障,比如:是否执行了其他什么程序,或者执行了一系列操作,或者是否有其他应用也同时发生故障?很多问题的发生都与当时的环境相关,因此当我们毫无头绪时,仔细考虑环境问题。ITPUB个人空间^.p"M%`7o7Q;fr
Y\(bpD*vJ%D0
](zp}#S'Y6Q1rBo0最后,一个可以重现的故障对于解决故障来说,是理想的情况。首先,你可以使用很多工具来监视故障发生的各种信息,这将有助于深入了解故障本质,更好的解决故障。其次,当你解决完后,也可以确认问题是否真正解决。
2E cx%xr+gAa7b!DV0
P1v bs"|;{)zrt2noHl0ITPUB个人空间+N"L+p
dK%F1P
2.收集数据
2Y7I+aSo"C)k0ITPUB个人空间
q {ZjL$`
ITPUB个人空间%vR/| zJe eG
很多情况下,你是无法通过客户告诉你的信息来解决问题的。DB2自身提供了很多信息来帮助你解决问题。这里我们将着重介绍以下文件:(为了便于理解,我就不翻译成中文了)
p8X/Hp2nq~?0
x Hk;HS$a3`4R0ITPUB个人空间
p3e-I;I:\A@+m|
db2diag.log
]h3XC {.V0Trap文件
#V1IEU)o0Dump文件
*R4P9f CJ0Messages文件ITPUB个人空间S"`[9Q;W3yv
ITPUB个人空间o+h
G9{}
ITPUB个人空间^0} f@7Lk5C)l9b
db2diag.log是我们最常用于故障诊断的文件。它一般位于$HOME/sqllib/db2dump/目录下,如果你在改目录下没有找到该文件,那么查看DBM配置变量DIAGPATH来确定具体位置。DBM配置变量DIAGLEVEL控制着哪些信息会写入到db2diag.log里面去,可取值的范围是0-4:ITPUB个人空间-arN@5h:Q
q@o
0-没有消息ITPUB个人空间[z%b9~2i1q0]
1-严重的错误信息ITPUB个人空间o?~@&tX$^;@7D
2-仅错误信息
pL,|W}\M03-所有错误和警告信息(缺省值)ITPUB个人空间[ k#x;?em9t.t
4-所有错误,警告,信息,和内部诊断消息
^,l4k[6E&bY ~n0一般情况下,缺省值3已经足够来解决问题了。特别情况下,你可以设置为4,来得到更多的信息,但是设置4会引起性能问题,所以解决完问题之后,请修改回3。ITPUB个人空间{6K/iVR|:aC
j)[6^_vY.M{d'p0ITPUB个人空间}p^;@ m ceu:X
Trap文件:当DB2进程收到一个异常信号时,会在诊断目录(DIAGPATH)下产生trap文件。文件名为tpppppp.nnn,其中pppppp表示进程号,nnn表示产生trap的节点。具体信号代号对应,可以查看/usr/include/sys/signal.h文件,本文将在后面详细解释trap文件。ITPUB个人空间4GH4`
YzX([/\
q5F;d
ITPUB个人空间`V6ONV9Q3N7U