sdfsdnfslk 发表于 2016-11-14 06:56:46

db2诊断信息查询db2diag

db2diag命令及db2diag.log文件的作用和其在诊断DB2问题时候的重要性,这里就不再多说。以下内容均摘自DB2 inforcenter
一、与在实例配置参数中与db2diag相关的参数有

db2 get dbm cfg | grep -i diag         
Diagnostic error capture level            (DIAGLEVEL) = 3
Diagnostic data directory path               (DIAGPATH) = /home/db2inst3/sqllib/db2dump/
Current member resolved DIAGPATH                        = /home/db2inst3/sqllib/db2dump/
Alternate diagnostic data directory path (ALT_DIAGPATH) =
Current member resolved ALT_DIAGPATH                  =
Size of rotating db2diag & notify logs (MB)(DIAGSIZE) = 0

DIAGLEVEL:表示诊断错误捕获级别
取值范围为
3 [ 0 — 4 ]
此参数的有效值为:
0 - 仅在服务器端捕获关键错误、事件消息和管理通知消息。无法在客户端上将此参数的值设置为 0。
1 - 仅捕获服务器错误、关键错误、事件消息和管理通知消息。
2 - 捕获所有错误、事件消息和管理通知消息。
3 - 捕获所有错误、事件消息和管理通知消息。
4 - 捕获所有错误、参考消息、事件消息和管理通知消息。
DIAGPATH:表示主诊断数据目录路径,不管数据库是否分区,DB2 实例的所有诊断数据都将存储在单个目录中。在分区数据库环境中,主机中的不同分区的诊断数据都将转储至此诊断数据目录路径。当 diagpath 值设置为 NULL 或者任何不带 $h 或 $n 模式标识的有效路径名时,此诊断数据目录路径是缺省条件。
ALT_DIAGPATH:表示备用诊断数据目录路径,此路径提供了用于存储诊断信息的辅助路径。仅当数据库管理器未能写入在 diagpath 中指定的路径时,才会使用由 alt_diagpath 参数指定的路径并确保不会丢失重要的诊断信息。要使备用诊断数据目录路径可用,必须设置 alt_diagpath 配置参数。
DIAGSIZE:配置旋转诊断日志文件大小,通过设置diagsize数据库管理器配置参数来配置旋转诊断日志,那么将使用一系列旋转诊断日志文件和一系列旋转管理通知日志文件,这些日志文件将遵循 diagsize 所定义的大小。当日志文件填满时,将删除最旧的文件并创建新的日志文件。
二、db2diag记录分析
输入db2diag命令或者直接打开db2diag.log文件,我们都可以看到许多记录db2运作信息。这些信息记录了数据库内部发生的所有操作信息。
以下示例显示样本日志条目的头信息,且标识了日志的所有部分。
注: 不是所有日志条目都包括所有这些部分。只有开头的一些字段(时间戳记至 TID)和函数才会显示在所有 db2diag 日志文件记录中。
2007-05-18-14.20.46.973000-240 1 ——消息的时间戳记和时区。timestamp
I27204F655 2——记录标识字段。recordID
LEVEL: Info 3 ——与错误消息相关联的诊断级别。DiagLEVEL
PID : 3228 4——进程ID号。processID
TID : 8796 5——线程ID号。threadID
PROC : db2syscs.exe 6 ——进程名称。process
INSTANCE: DB2MPP 7——实例。instance
NODE : 002 8——分区号。node
DB : WIN3DB1 9 ——数据库。database/db
APPHDL : 0-51 10——应用句柄。applicationHandle
APPID: 9.26.54.62.45837.070518182042 11 ——进程正在为其工作的应用程序的标识。applicationID
AUTHID : UDBADM 12——授权标识。
EDUID : 8796 13——引擎可分派单元标识。EngineDispatchUnitID
EDUNAME: db2agntp 14(WIN3DB1) 2 ——引擎可分派单元名称。
FUNCTION: 15DB2 UDB, data management, sqldInitDBCB, probe:4820 ——产品名(“DB2”)、组件名(“数据管理”)、写入消息的函数名(“sqlInitDBCB”)以及函数内的探测点(“4820”)。
DATA #1 : 16String, 26 bytes ——被调用函数返回的信息。可能会返回多个数据字段。
Setting ADC Threshold to:
DATA #2 : unsigned integer, 8 bytes
1048576

尚未在示例中说明的字段包括:
<source> 指示已记录错误的源头。(可在样本的第一行结尾找到。)可能的值包括:

[*]origin - 导致错误的函数(起始点)已记录消息
[*]OS - 操作系统已生成错误
[*]received - 已从另一个进程(客户机/服务器)接收到错误
[*]sent - 错误已发送至另一进程(客户机/服务器)

MESSAGE 包含要记录的消息。它包括:

[*]<messageID> - 消息号,如 ECF=0x9000004A 或 DIA8604C
[*]<msgText> - 错误描述

如果还有被调用(CALLED)字段,那么 <msgText> 是被调用(CALLED)函数返回的错误对记录消息的函数(在“函数”字段中指定)的影响
被调用(CALLED) 这是返回错误的函数。它包括:

[*]<prodName> - 产品名:“OS”、“DB2”、“DB2 Tools”或“DB2 Common”
[*]<compName> - 组件名称(如果是系统调用则为“-”)
[*]<funcName> - 被调用函数名

OSERR 这是被调用(CALLED)的系统调用返回的操作系统错误。(可在 CALLED 所在行的结尾找到。)它包括:

[*]<errorName> - 特定于系统的错误名称
[*]<errno> - 操作系统错误号

ARG 本节列示返回错误的函数调用的自变量。它包括:

[*]<N> - 对“被调用”函数的调用中的自变量的位置
[*]<typeTitle> - 与第 N 个自变量类型名相关联的标注
[*]<typeName> - 要记录的自变量的类型的名称
[*]<size> - 要记录的自变量的大小

DATA 它包含记录函数转储的所有其他数据。它包括:

[*]<N> - 要转储的数据对象的序号
[*]<typeTitle> - 要转储的数据的标注
[*]<typeName> - 要记录的数据字段的类型的名称,如 PD_TYPE_UINT32 和 PD_TYPE_STRING
[*]<size> - 数据对象的大小

三、db2diag命令的简单使用
db2diag的命令参数相对比较多,可以使用以下几个参数查看更多案例,方便熟悉

db2diag -help #提供了所有可用选项的简短描述
db2diag -h brief #提供对所有不带示例的选项的描述
db2diag -h notes #提供用法说明和限制
db2diag -h examples #提供一小组示例以帮助您入门
db2diag -h tutorial #提供所有可用选项的示例
db2diag -h all #提供最完整的选项列表


1.按数据库名称过滤 db2diag 日志文件
db2diag -g db=sample
2.按进程标识过滤 db2diag 日志文件
db2diag -g pid=2200
3.格式化 db2diag 工具输出
db2diag -time 2006-01-01 -node "0,1,2" -level "Severe, Error" |
db2diag -fmt "Time: %{ts}
分区:%node Message Level:%{level} \nPid:%{pid}Tid:%{tid}
实例:%{instance}\nMessage: @{msg}\n"
生成的输出示例如下所示:
时间:2006-02-15-19.31.36.099000 分区:000 消息级别:错误
Pid:940 Tid:40 实例:DB2
消息:ADM7506W 已经请求了数据库停顿。
4.归档无实例客户机上的 db2diag 日志文件

db2diag -A
db2diag: Moving "/home/db2inst3/sqllib/db2dump/db2diag.log"
to   "/home/db2inst3/sqllib/db2dump/db2diag.log_2013-11-25-00.40.26"


引用
IBM DB2 9.7 Information Center for Linux, UNIX, and Windows—http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
页: [1]
查看完整版本: db2诊断信息查询db2diag