db2 Db2 故障诊断的正确思路( 二 )


DB2提供了一个工具db2support,它可以自动收集所有DB2和系统诊断信息,并最终生成一个db2support.zip文件,这对远程问题解决尤为重要。
另外还有一些其他的信息需要收集,比如AIX上系统的错误信息errpt-a;第三方应用的错误信息;硬件错误消息。
3.安装问题的诊断
在处理安装问题之前,请确认是否满足安装先决条件。很多奇怪问题的根源是安装条件不满足。DB2安装光盘中有详细的文档。请在安装前仔细阅读,以确保系统硬件和软件满足安装要求。此外,一些内核参数和环境变量也需要注意。
在UNIX上安装DB2时,一般使用db2setup。默认情况下,诊断日志将在/tmp下生成:
db2setup.log .以下是部分db2setup.log:
恢复:0511-138无法写入文件
。/usr/lpp/db 2 _ 07 _ 01/lib/libdb 2e . a .
恢复:文件系统中没有足够的空间。
0503-700错误:还原文件时出错
0503-037异常:系统调用执行命令失败
/usr/sbin/rest by name-S-XyAqf/CD Roms/DB2//db 2 _ 07 _ 01 . db 2-Z
/tmp/inutmp_ZmF7a/sorted.al
/usr/lib/instl/install:文件系统中空间不足。
从这个日志中,我们可以看到第一个错误是:0511-138无法写入文件。/usr/lpp/DB2 _ 07 _ 01/lib/libdb 2e . a .文件系统空间不足。这意味着目标文件系统已满,不能写入新文件。我们可以使用df -k来检查文件系统的使用情况:
文件系统1024块空闲%已用%已用%已安装
/dev/hd4 16384 3612 78% 2194 27% /
/dev/hd2 1556480 69232 96% 17684 5%/usr
/dev/hd9 var 32768 9220 72% 586 8%/var
问题很明显。您应该扩展/usr文件系统。
不是所有的问题都容易解决,有时候db2setup.log记录的信息不足以解决问题,可以在运行db2setup时添加-d选项。当DB2安装程序进入调试模式时,它将在/tmp下生成db2setup.trc文件,其中包含更多详细信息。
4.创建实例问题诊断
如果您在安装DB2时创建了一个实例,那么当您遇到问题时,db2setup.log(上面提到的)中会有详细的错误消息。例如:
日志开始于美国东部时间2002年11月21日星期四21:33:18
日志文件可以在/tmp/db2setup.log中找到。
要执行的命令:
/usr/lpp/db 2 _ 07 _ 01/instance/db 2 iret-a SERVER-u db 2 fen C1 db 2 ins 1
上述命令的输出日志:
DBI1082E文件或目录/home/db2inst1/sqllib已经存在。
说明:命令需要创建的文件或目录已经存在。
用户响应:检查指定的文件或目录。如果该文件或目录是由于之前成功完成该命令而存在的,则不需要任何操作。否则,在再次尝试该命令之前,您需要重命名或删除指定的文件或目录。
错误消息显示/home/db2inst1/sqllib已经存在,因此无法创建同名的实例。解决方法是重命名或删除此目录。还有一个专门用于创建实例的日志文件:
/tmp/db2icrt . log . PID,无论您是在安装DB2时创建一个实例,还是手动执行db 2 CRT来创建一个实例,都会生成这个文件。
安装完DB2的补丁或升级包后,您需要执行db2iupdt来升级实例。
例如,您可以执行以下语句:
db 2 updt-u db 2 fen C1 db 2 ins 1
遇到错误:无法更新dbi1122e实例db2inst1。此时,您应该检查/tmp/db 2 updt . log以了解更多信息。例如,以下是db 2 updt . log的一段:
无法更新DBI1122E实例db2inst1。
解释:试图更新实例。无法更新此实例,因为:
o此“db2iupdt”命令不能用于更新此实例。
o该实例仍处于活动状态。
用户响应:确保您使用的是正确版本的“db2iupdt”命令。还要确保实例上没有db2进程在运行。请重试该命令。
DBI1079I输出保存在日志文件/tmp/db 2 updt . log . 22322中。
说明:所有已处理和失败的操作都已保存到此日志文件中。
用户回应:不要以任何方式修改此文件。该文件供IBM技术支持参考。

推荐阅读