设为首页 收藏本站
查看: 983|回复: 0

[经验分享] db2诊断信息查询db2diag

[复制链接]

尚未签到

发表于 2016-11-14 06:56:46 | 显示全部楼层 |阅读模式
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: 15  DB2 UDB, data management, sqldInitDBCB, probe:4820 ——产品名(“DB2”)、组件名(“数据管理”)、写入消息的函数名(“sqlInitDBCB”)以及函数内的探测点(“4820”)。
DATA #1 : 16  String, 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299859-1-1.html 上篇帖子: db2导入导出数据 下篇帖子: db2解除死锁实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表