供数据库和系统管理员使用的主日志文件为管理通知日志。
db2diag 日志文件旨在供 IBM 软件支持机构用于进行故障诊断。
管理通知日志消息也以标准化消息格式记录到 db2diag 日志文件。
db2diag 工具用于对 db2diag 日志文件中的大量信息进行过滤和格式化。过滤 db2diag 日志文件记录可缩短诊断问题时查找所需记录的时间。
示例 1:按数据库名称过滤 db2diag 日志文件
如果实例中有若干数据库,并且您只希望显示与数据库“SAMPLE”有关的信息,那么可以按如下所示过滤 db2diag 日志文件:
db2diag -g db=SAMPLE
因此,将仅显示包含“DB: SAMPLE”的 db2diag 日志文件记录,如:
-
2006-02-15-19.31.36.114000-300 E21432H406 级别:错误
-
PID:940 TID:660 PROC:db2syscs.exe
-
实例:DB2 节点:000 数据库:SAMPLE
-
APPHDL:0-1056 APPID:*LOCAL.DB2.060216003103
-
函数:DB2 UDB,基本系统实用程序,sqleDatabaseQuiesce,探测点:2
-
消息:ADM7507W 数据库停顿请求成功完成。
示例 2:按进程标识过滤 db2diag 日志文件
以下命令可用来显示进程标识 (PID) 为 2200,并且在分区 0、1、2 或分区 3 上运行的进程生成的所有严重错误消息:
db2diag -g level=Severe,pid=2200 -n 0,1,2,3
注意,此命令可能以不同方式写入,包括 db2diag -l severe -pid 2200 -n 0,1,2,3。还要注意的是,-g 选项指定区分大小写的搜索,所以此处“Severe”会起作用,但如果使用了“severe”则会失败。满足如下要求时,这些命令将成功检索 db2diag 日志文件记录:
-
2006-02-13-14.34.36.027000-300 I18366H421 级别:严重
-
PID : 2200 TID : 660 PROC : db2syscs.exe
-
实例:DB2 节点:000 数据库:SAMPLE
-
APPHDL:0-1433 APPID:*LOCAL.DB2.060213193043
-
函数:DB2 UDB,数据管理,sqldPoolCreate,探测点:273
-
返回码:ZRC=0x8002003C=-2147352516=SQLB_BAD_CONTAINER_PATH
-
“错误的容器路径”
示例 3:格式化 db2diag 工具输出
以下命令过滤 2006 年 1 月 1 日之后发生,并且包含分区 0、1 或2 上记录的所有非严重错误和严重错误的所有记录。它会输出匹配的记录,因此时间戳记、分区号和级别将出现在第一行上,而 pid、tid 和实例名将出现在第二行上,之后是错误消息:
-
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 已经请求了数据库停顿。
有关更多信息,请发出下列命令:
-
db2diag -help 提供了所有可用选项的简短描述
-
db2diag -h brief 提供对所有不带示例的选项的描述
-
db2diag -h notes 提供用法说明和限制
-
db2diag -h examples 提供一小组示例以帮助您入门
-
db2diag -h tutorial 提供所有可用选项的示例
-
db2diag -h all 提供最完整的选项列表
示例 4:过滤来自不同工具的消息
下列示例显示如何仅查看来自数据库管理器中的特定工具(或所有工具)的消息。受支持的工具包括:
-
ALL,这会返回来自所有工具的记录
-
MAIN,这会返回来自 DB2® 常规诊断日志的记录,例如 db2diag 日志文件和管理通知日志
-
OPTSTATS,这会返回与优化器统计信息有关的记录
要读取来自 MAIN 工具的消息,请使用以下命令:
db2diag -facility MAIN
要显示来自 OPTSTATS 工具的消息并滤出级别为 Severe 的记录,请使用以下命令:
<