db2diag - db2diag 日志分析工具命令
过滤和格式化单个和循环 db2diag 日志文件。 如果设置 diagsize 数据库管理器配置参数,那么 db2diag 命令将从循环 db2diag 日志文件中读取。 否则,缺省情况下,该命令将从缺省 db2diag.log 文件中读取。
授权
无
需要的连接
无
命令语法
命令参数
- -global
- 指定所有主机上的所有数据库分区中的所有 db2diag 日志文件都包含在日志文件处理中。注: 此选项支持旋转诊断日志文件以及位于拆分诊断数据目录中的文件。 此选项还可以与 -follow 选项结合使用。
- -merge
- 合并诊断日志文件并根据时间戳记对记录进行排序。 此选项支持旋转诊断日志文件以及位于拆分诊断数据目录中的文件。
如果此参数后面没有两个或两个以上以空格分隔的 filename 值,那么将合并由 diagpath 数据库管理器配置参数和 alt_diagpath 数据库管理器配置参数指定的目录中的 db2diag 日志文件。 如果在多个数据库分区之间拆分诊断数据目录路径,那么将仅合并当前主机的数据库分区中的 db2diag 日志文件。
如果仅指定了一个 filename ,或者在 diagpath 数据库管理器配置参数中指定的路径中仅存在一个诊断文件,并且未设置 alt_diagpath 数据库管理器配置参数, 那么该命令将处理单个诊断日志文件,就像未指定 -merge 命令参数一样。
此参数不允许与 -facility, -follow或 -archive 参数一起使用。 从 Db2® 版本 9.7 修订包 7 开始, -merge 参数支持自动合并 alt_diagpath 目录中的 db2diag.log 文件。
- -global -merge -sdir sharedDirPathname
- 同时指定 -global 和 -merge 选项将导致所有要合并的主机上的所有数据库分区中的所有 db2diag 日志文件以及根据时间戳记排序的记录。 此参数支持旋转诊断日志文件以及位于拆分诊断数据目录中的文件。
必须指定 "-sdir sharedDirPathname参数,以临时存储从不同主机获取的合并诊断日志文件。 处理完成后,将删除临时合并的诊断日志文件。 sharedDirPathname变量必须指定一个所有主机都有访问和写入权限的共享目录。
- filename
- 指定要处理的 Db2 诊断日志的一个或多个以空格分隔的路径名。 如果省略文件名,那么将处理当前目录中的 db2diag 日志文件。 如果找不到该文件,那么将搜索由 diagpath 数据库管理器配置参数设置的一个或多个目录。
- -facility | -fac
- 从相应设施读取文件。 设施是记录的逻辑分组。 例如,所有优化器统计信息记录都分组到 OPTSTATS 工具中。 缺省情况下,输出将采用文本格式。 有效的设施选项为以下值:
- ALL
- 从所有设施返回记录。
- MAIN
- 从 Db2 常规诊断日志 (例如 db2diag 日志文件和循环事件日志) 返回记录。
- OPTSTATS
- 返回与优化器统计信息相关的记录。
- -fmt formatString
- 使用格式字符串formatString 格式化 "db2diag输出,格式字符串包含 "
%field、"%{field}、"@field"或 "@{field}形式的记录字段。%{field}和@{field}用于将字段名称与可能跟在字段名称后面的字母数字 (或任何其他允许的字符) 分隔开。 所有字段名称都不区分大小写。 字段名称可以缩短为识别字段名称而不含糊不清所必需的几个首字符。 此外,别名可以用于具有长名称的字段。 字段名称% 或 @ 之前的前缀指定如果字段为空,那么字段前面的文本是显示 (%) 还是不显示 (@)。以下字段当前可用:
- timestamp | ts
- 时间戳记。 此字段可分为其组成字段:
%tsyear,%tsmonth,%tsday,%tshour,%tsmin(分钟) ,%tssec(秒) ,%tsmsec(对于 UNIX 操作系统为微秒,对于 Windows 操作系统为毫秒)。 - timezone | tz
- 与 UTC 相差的分钟数 (全球标准时间)。 例如, -300 是东部时间。
- recordid | recid
- 记录的唯一字母数字标识,例如 I11455A696。
- audience
- 记录的消息的预期受众。
'E'指示外部用户 (IBM 客户,服务分析人员和开发者)。'I'指示内部用户 (服务分析人员和开发者)。'D'指示开发者的调试信息。 - level
- 消息的诊断级别。 级别为
Info,Warning,Error,Severe,Critical和Event。 - source
- 记录的错误源自的位置:
Origin,OS,Received或Sent。 - instance | inst
- 实例名称。
- node
- 数据库分区服务器号。
- database | db
- 数据库名称。
- pid
- 进程标识。
- tid
- 线程标识。
- eduid
- EDU 标识。
- eduname
- EDU 名称。
- tenantid
- 租户标识
- process
- 与进程标识关联的名称,使用双引号。 例如,
"db2sysc.exe"。 - product
- 产品名称。 例如,
DB2 COMMON。 - component
- 组件名称。
- funcname
- 函数名。
- probe
- 探测器号。
- function
- 完整函数描述:
%prod,%comp,%funcname和probe:%probe。 - appid
- 应用程序标识。 此值与 appl_id 监视元素数据的值相同。 有关如何解释此值的详细信息,请参阅 appl_id-Application ID 监视元素 。
- coordnode
- 协调程序分区。
- coordindex
- 协调程序索引。
- apphdl
- 应用程序句柄:
%coordnode - %coordindex。 - message | msg
- 错误消息。
- calledprod
- 返回错误的函数的产品名称。
- calledcomp
- 返回错误的函数的组件名称。
- calledfunc
- 返回错误的函数的名称。
- called
- 返回错误的函数的完整描述,格式为:
%calledprod,%calledcomp和%calledfunc。 - rcval
- 返回码值 (32 字节)。
- rcdesc
- 错误描述。
- retcode | rc
- 由名为
%rcval %rcdesc的函数返回的返回码。 - errno
- 系统错误号。
- errname
- 特定于系统的错误名称。
- oserror
- 系统调用返回的操作系统错误,格式为:
%errno %errname。 - callstack
- 调用堆栈。
- datadesc
- 数据描述。
- dataobject
- 数据对象。
- data
- 消息的完整数据部分,格式为:
%datadesc %dataobject。 - argdesc
- 参数描述。
- argobject
- 参数对象。
- arg
- 返回错误的函数调用的自变量:
%argdesc %argobject。 - Event descriptions:
- impact
- 用户影响 (仅针对事件)。
- startevent
- 开始事件描述 (*)。
- stopevent
- 停止事件描述 (*)。
- changeevent
- 更改事件描述 (*)。
- init
- 初始化事件描述 (*)。
- fini
- 完成或最终完成事件描述 (*)。
- startup
- 启动事件描述 (*)。
- terminate
- 终止事件描述 (*)。
- bringdown
- Bringdown 事件描述 (*)。
- interrupt
- 中断事件描述 (*)。
- associate
- 关联事件描述 (*)。
- disassociate
- 解除事件描述 (*) 的关联。
- changecfg
- 更改配置事件描述 (*)。
- transfer
- 传输事件描述 (*)。
- dispatch
- 分派事件描述 (*)。
- switch
- 切换事件描述 (*)。
- report
- 报告事件描述 (*)。
- get
- 获取事件描述 (*)。
- free
- 免费事件描述 (*)。
- open
- 打开事件描述 (*)。
- close
- 关闭事件描述 (*)。
- work
- 工作事件描述 (*)。
- wait
- 等待事件描述 (*)。
- available
- 可用事件描述 (*)。
- connect
- 连接事件描述 (*)。
- disconnect
- 断开事件描述 (*)。
- accept
- 接受事件描述 (*)。
- recv
- 接收事件描述 (*)。
- send
- 发送事件描述 (*)。
- create
- 创建事件描述 (*)。
- destroy
- 破坏事件描述 (*)。
- request
- 请求事件描述 (*)。
- reply
- 应答事件描述 (*)。
- dependency
- 依赖关系事件描述 (*)。
- write
- 写入事件描述 (*)。
- read
- 读取事件描述 (*)。
- reset
- 重置事件描述 (*)。
- collect
- 收集事件描述 (*)。
- add
- 添加事件描述 (*)。
- alter
- 变更事件描述 (*)。
- drop
- 删除事件描述 (*)。
- invalidate
- 使事件描述失效 (*)。
- grant
- 授予事件描述 (*)。
- revoke
- 撤销事件描述 (*)。
- (*) Each event field has the following subfields:
- {event}type
- 事件类型 (START , STOP , READ , WRITE 和 GET)。
- {event}desc
- 事件描述 (包含事件信息的头)。
- {event}state
- 事件状态 (成功,失败,启动,停止,进行中,空闲) 或事件进度 (百分比)。
- {event}attr
- 事件属性 (业务级别,高速缓存,同步,异步,内部,外部,逻辑,物理,自动,手动,临时,永久)。
- {event}objid
- 唯一对象标识 (TABLE , CFG 和 DBM)。
- {event}objname
- 事件对象名 (例如, "schema.tablename")。
- {event}objdata
- 对象数据 (如果对象不是字符串或简单整数类型 (例如,数据结构或某些复杂类型))。
- {event}qtype
- 事件限定符类型 (FROM , TO , ON , FOR , AT , BY 和 CONTEXT)。
- {event}qname
- 事件限定符名称或值 (例如, FOR "DB ABC")。
- {event}qdhdr
- 事件限定符数据头 (包含类型,文本描述和数据大小)。 与%{event}qdata 字段一起使用。
- {event}qdata
- 事件限定符数据 (如果限定符不是字符串或简单整数类型 (例如,某些数据结构或复杂类型) 时使用)。
在上述列表中,应该将 {event} 关键字替换为特定事件 (例如,启动,停止,更改,读取或写入) 的事件类型。
要始终显示字段名称前面的文本 (例如,对于必填字段) ,应使用% 字段前缀。 要在此字段包含某些数据时显示字段名称前面的文本,应使用 @ 前缀。 允许将必填字段和可选字段与相应的文本描述组合使用。
在格式字符串中可识别以下特殊字符:
\n,\r,\f,\v和\t。与其他字段相比,数据和自变量字段可以包含多个部分。 要输出特定节,请在字段名后添加
[n],其中 n 是节号 (1≤ n ≤64)。 例如,要输出第一个数据对象和第二个数据描述部分,请使用%{dataobj}[1]和%{datadesc}[2]。 如果未使用[n],那么将使用日志消息中显示的预先格式化的已记录数据输出所记录的所有部分,因此无需在每个数据字段,自变量字段或部分之前添加适用的文本描述和分隔换行符。 - -filter fieldPatternList | -g fieldPatternList
- fieldPatternList是以逗号分隔的字段格式对列表,格式如下:
fieldName operator searchPattern.运算符可以是下列其中一个值:- =
- 仅选择包含构成完整词的匹配项的那些记录。 (Word 搜索。)
- :=
- 选择包含匹配项的那些记录,在这些匹配项中,搜索模式可以是较大的表达式的一部分。
- !=
- 仅选择不匹配的行。 (反转词匹配。)
- !:=
- 仅选择搜索模式可以包含在较大表达式中的不匹配行。
- ^=
- 选择字段值以指定的搜索模式开头的记录。
- !^=
- 选择字段值未以指定的搜索模式开头的记录。
对于 -fmt 选项,除了% 和 @ 前缀未用于此选项之外,还提供了相同的字段。
- -gi fieldPatternList
- 与 -g 参数相同,但不区分大小写。
- -gv fieldPatternList
- 搜索与指定模式不匹配的消息。
- -gvi | -giv fieldPatternList
- 与 -gv相同,但不区分大小写。
- -lastrecords number-of-records
- 显示并过滤 db2diag 日志文件中指定的最后记录数。 对于每个 db2diag 日志文件,此参数将检查指定的记录数是否可用。 如果日志文件中可用的记录数小于您指定的记录数,那么 db2diag 命令将处理该文件中可用的所有记录。 如果使用分割诊断数据目录路径,那么将为每个路径中的每个 db2diag 日志文件返回最后指定的记录数。
- -pid processIDList
- 仅显示列出了进程标识的日志消息。
- -tid threadIDList
- 仅显示列出了线程标识的日志消息。
- -eduid EduIDList
- 从包含一个或多个以逗号分隔的数字值的 EDU 标识列表中查找具有指定 EDU 标识的所有记录。
- -tenantidTenantIDList
- 从包含一个或多个以逗号分隔的数字值的 TENANT 标识列表中查找具有指定 TENANT ID 的所有记录。
- -n | -node nodeList
- 仅显示列出了数据库分区号的日志消息。
- -e | -error errorList
- 仅显示列出了错误号的日志消息。
- -l | -level levelList
- 从严重性级别列表中查找具有指定严重性级别的所有记录,该严重性级别包含一个或多个以逗号分隔的文本值,即: 信息,警告,错误,严重,严重和事件。
- -c | -count
- 显示找到的记录数。
- -v | -invert
- 反转模式匹配以选择与指定模式不匹配的所有记录
- -strict
- 每行仅使用一个
field: value对显示记录。 将跳过所有空字段。 这可用于脚本以简化解析。 - -V | -verbose
- 输出所有字段,包括空字段。
- -exist
- 定义请求搜索时如何处理记录中的字段。 如果指定了此选项,那么必须存在一个字段才能进行处理。
- -cbe
- 公共基本事件 (CBE) 规范情境数据。
- -o | -output pathName
- 将输出保存到标准 pathName指定的文件中。
- -f | -follow
- 如果输入文件是单个或旋转的 db2diag 日志文件,那么指定在处理输入文件的最后一条记录之后,该工具不会终止。 相反,该命令将在指定的时间间隔 (sleepInterval) 内休眠,然后尝试在输入文件中的进一步记录变为可用时对其进行读取和处理。 仅处理输入文件的最后 8 千字节的记录。
-f 参数可处理旋转 db2diag 日志文件。 例如,如果正在使用的最新旋转诊断日志文件是 db2diag.23.log,那么该命令将读取该文件。 当该文件满足其大小限制时,该命令将读取所创建的下一个循环日志文件,即 db2diag.24.log。
当监视由另一进程写入文件的记录时,可以使用此选项。 可以指定 startTime 选项以显示在此时间之后记录的所有记录。 startTime 选项使用以下格式指定:YYYY-MM-DD-hh.mm.ss.nnnnnn,其中- YYYY
- 指定年份。
- MM
- 指定一年的月份 (01 到 12)。
- DD
- 指定一个月中的某一天 (01 到 31)。
- hh
- 指定一天中的一个小时 (00 到 23)。
- mm
- 指定一小时 (00 到 59) 的分钟。
- ss
- 指定一秒 (00 到 59)。
- nnnnnn
- 在 UNIX 操作系统上指定微秒,在 Windows 操作系统上指定毫秒。
如果诊断日志文件中不存在记录时间戳记的完全匹配,那么将使用早于指定时间戳记的最接近时间。
sleepInterval 选项指定休眠时间间隔 (以秒计)。 如果需要较小的时间单位,那么可以将其指定为浮点值。 缺省值为 2 秒
- -H | -history
- 显示指定时间间隔内记录的消息的历史记录。 可以使用以下选项指定此选项:
- historyPeriod
- 指定从最近记录的记录开始,在 historyPeriod指定的持续时间内显示记录的消息。 historyPeriod 选项使用以下格式指定:
Number timeUnit,其中 Number 是时间单位数, timeUnit 指示时间单位类型: M (月) , d (日) , h (小时) , m (分钟) 和 s (秒)。 Number 的缺省值为 30,而 timeUnit 的缺省值为 m。 - historyPeriod:historyReference
- 指定显示在 historyReference 指定的开始时间之后的时间段内记录的已记录消息 (如果给出了 historyPeriod 的显式正值) ,或者显示在 historyReference 指定的结束时间之前的时间段内记录的已记录消息 (如果给出了 historyPeriod 的负值, 或缺省值)。格式为 YYYY-MM-DD-hh.mm.ss。nnnnnn,其中:
- YYYY
- 指定年份。
- MM
- 指定一年的月份 (01 到 12)。
- DD
- 指定一个月中的某一天 (01 到 31)。
- hh
- 指定一天中的一个小时 (00 到 23)。
- mm
- 指定一小时 (00 到 59) 的分钟。
- ss
- 指定一秒 (00 到 59)。
- nnnnnn
- 指定微秒 (UNIX 操作系统) 或毫秒 (Windows 操作系统)。
- -t | -time
- 指定时间戳记值。 可以使用下列其中一个或两个选项来指定此选项:
- startTime
- 显示在 startTime 和 startTime之后记录的所有消息。
- :endTime
- 显示在 endTime 之前以及在 endTime记录的所有消息。
格式为 YYYY-MM-DD-hh.mm.ss。nnnnnn,其中:- YYYY
- 指定年份。
- MM
- 指定一年的月份 (01 到 12)。
- DD
- 指定一个月中的某一天 (01 到 31)。
- hh
- 指定一天中的一个小时 (00 到 23)。
- mm
- 指定一小时 (00 到 59) 的分钟。
- ss
- 指定一秒 (00 到 59)。
- nnnnnn
- 指定微秒 (UNIX 操作系统) 或毫秒 (Windows 操作系统)。
如果诊断日志文件中不存在记录时间戳记的完全匹配,那么将使用最接近指定时间戳记的时间。
- -A | -archive dirName
- 归档单个诊断日志文件和循环诊断日志文件。 指定此选项时,将忽略所有其他选项。 如果指定了一个或多个文件名,那么将单独处理每个文件。 格式为
YYYY-MM-DD-hh.mm.ss的时间戳记将追加到文件名中。您可以指定要将其归档的文件和目录的名称。 如果未指定目录,那么将在文件所在的目录中归档该文件,并从文件名中抽取目录名称。
如果指定目录但未指定文件名,那么将在当前目录中搜索 db2diag 日志文件。 如果找到该文件,那么将在指定的目录中归档该文件。 如果找不到该文件,那么将在 diagpath 和 alt_diagpath 配置参数指定的目录中搜索 db2diag 日志文件。 如果找到,那么会将其归档到指定的目录中。
如果未指定文件或目录,那么将在当前目录中搜索 db2diag 日志文件。 如果找到,那么会将其归档在当前目录中。 如果找不到该文件,那么将在 diagpath 和 alt_diagpath 配置参数指定的目录中搜索 db2diag 日志文件。 如果找到,那么将在 diagpath 或 alt_diagpath 配置参数指定的目录中对其进行归档。
db2diag -archive 选项随 IBM® Data Server Driver Package 和 IBM Data Server for ODBC 和 CLI 提供。 此选项使您能够归档无实例客户机上的诊断日志文件。 例如:$ db2diag -A db2diag: Moving "/home/usr1/clidriver/db2dump/db2diag.log" to "/home/usr1/clidriver/db2dump/db2diag.log_2010-09-14-01.16.26" - -readfile
- 强制从诊断日志文件读取,忽略任何终端输入。 此选项可以在脚本中使用,以保证 db2diag 将从文件而不是终端读取,尤其是在禁用
stdin或使用自动化工具的情况下。 使用 rah 或 db2_all 运行 db2diag 命令还需要使用 -readfile 选项。 - -rc rcList | switch
- 以空格分隔的rcList 列表显示特定 ZRC 或 ECF 十六进制或负十进制返回代码的Db2内部错误返回代码说明。 可以通过指定下列其中一个开关来显示 ZRC 或 ECF 返回码的完整列表:
- zrc
- 显示 Db2 ZRC 返回码的简短描述。
- ecf
- 显示 Db2 ECF 返回码的简短描述。
- html
- 以 HTML 格式显示 Db2 ZRC 返回码的简短描述。
当指定此选项时,将忽略所有其他选项,并将输出定向到屏幕。
- -ecfid ecfId
- 显示从数字 ecfId中抽取的函数信息。 指定此选项时,将忽略所有其他选项。
- -h | -help | ?
- 显示帮助信息。 当指定了此选项时,其他所有的选项都会被忽略,且只显示帮助信息。 如果省略了包含一个或多个逗号分隔命令参数的选项列表optionList,则会显示所有可用选项的简短说明列表。 对于选项列表中指定的每个选项,都会显示更详细的信息和使用示例。 可以使用以下开关之一代替optionList参数来修改帮助输出,以显示有关工具及其使用的更多信息:
- brief
- 显示不带示例的所有选项的帮助信息。
- examples
- 显示一些典型示例以帮助使用该工具。
- tutorial
- 显示描述高级功能的示例。
- notes
- 显示使用说明和限制。
- all
- 显示有关所有选项的完整信息,包括每个选项的用法示例。
- -lastlines number-of-lines
- 显示并过滤从 db2diag 日志文件中指定的最后行数。 对于每个 db2diag 日志文件,此参数将检查指定的行数是否可用。 如果日志文件中可用的行数小于您指定的记录数,那么 db2diag 命令将处理该文件中可用的所有行。 如果使用分割诊断数据目录路径,那么将为每个路径中的每个 db2diag 日志文件返回最后指定的行数。
示例
- 要合并诊断数据目录路径中的所有 db2diag 日志文件,请输入以下命令:
如果根据数据库分区拆分诊断数据目录路径,那么此命令会合并当前主机的所有数据库分区中的 db2diag 日志文件。 如果未拆分诊断数据目录路径,那么该命令将处理单个诊断日志文件,就像未指定 -merge 选项一样。db2diag -merge - 在此示例中,通过使用以下命令设置 diagpath 数据库管理器配置参数,根据物理主机和数据库分区来拆分缺省诊断数据目录路径:
db2 update dbm cfg using diagpath '"$h$n"'此示例说明了如何获得所有诊断日志中所有记录的输出,以及如何合并bower和horton这两个主机中每个主机上的三个数据库分区中的诊断日志文件。 以下是六个 db2diag 日志文件的列表:- ~/sqllib/db2dump/HOST_bower/NODE0000/db2diag.log
- ~/sqllib/db2dump/HOST_bower/NODE0001/db2diag.log
- ~/sqllib/db2dump/HOST_bower/NODE0002/db2diag.log
- ~/sqllib/db2dump/HOST_horton/NODE0003/db2diag.log
- ~/sqllib/db2dump/HOST_horton/NODE0004/db2diag.log
- ~/sqllib/db2dump/HOST_horton/NODE0005/db2diag.log
要输出所有这六个 db2diag 日志文件中的记录,请运行以下命令:db2diag -global要合并每个主机bower和horton上所有三个数据库分区的诊断数据目录路径中的所有六个 db2diag 日志文件,并根据时间戳记格式化输出,请输入以下命令:
其中 /temp/keon 是db2diag -global -merge -sdir /temp/keon -fmt %{ts}bower和horton这两个主机共享的共享目录,在处理期间用来存储每个主机的临时合并文件。 - 要显示所有严重错误消息,请输入以下任一命令:
或db2diag -level criticaldb2diag -g 'level=Critical' - 要显示进程标识 (PID) 为 52356 的进程在数据库分区 1 , 2 或 3 上生成的所有严重错误消息,请输入以下命令:
db2diag -g level=Severe,pid=952356 -n 1,2,3 - 要显示包含数据库
SAMPLE和实例aabrashk的所有消息,请输入以下命令:db2diag -g db=SAMPLE,instance=aabrashk - 要显示包含数据库字段的所有严重错误消息,请输入以下命令:
db2diag -g db:= -gi level=severe - 显示包含 Db2 ZRC 返回码 0x87040055和应用程序标识 G916625D.NA8C.068149162729,输入以下命令:
db2diag -g msg:=0x87040055 -l Error | db2diag -gi appid^=G916625D.NA - 要显示不包含 LOADID 数据的所有消息,请输入以下命令:
db2diag -gv data:=LOADID - 要在应用程序标识字段中仅显示不包含
LOCAL模式的已记录记录记录,请输入以下任一命令:
或db2diag -gi appid!:=local
将显示所有不匹配的记录。 要仅输出具有应用程序标识字段的消息,请输入以下命令:db2diag -g appid!:=LOCALdb2diag -gvi appid:=local -exist - 要显示时间戳记为
2003-03-03-12.16.26.230520的消息之后记录的所有消息,请输入以下命令:db2diag -time 2003-03-03-12.16.26.230520 - 要显示过去三天记录的严重错误,请输入以下命令:
db2diag -gi "level=severe" -H 3d - 要显示与 funcname 字段的
pdLog模式不匹配的所有日志消息,请输入下列其中一个命令:
或db2diag -g 'funcname!=pdLog'db2diag -gv 'funcn=pdLog' - 要显示包含从 "
base sys" 开始的组件名称的所有严重错误消息,请输入以下命令:db2diag -l severe | db2diag -g "comp^=base sys" - 要查看 db2diag.log 文件的增长,请输入以下命令:
这将显示写入当前目录中 db2diag.log 文件的所有记录。 记录将在添加到文件时显示。 屏幕将继续显示,直到您按 Ctrl-C。db2diag -f db2diag.log - 要将 db2diag.log 的上下文写入 /home/user/Logs 目录中的 db2diag_123.log 文件,请输入以下命令:
db2diag -o /home/user/Logs/db2diag_123.log - 要使用缺省设置从 Perl 脚本调用 db2diag ,请输入:
system("db2diag -readfile"); 这将强制 db2diag 从 diagpath 配置参数指定的目录处理 db2diag.log/db2diag.*.log 文件 (如果设置了数据库管理器 diagsize 配置参数,那么周转日志)。
- 要从忽略任何终端输入的指定目录中读取 db2diag.log1 文件,请输入:
system("db2diag -readfile /u/usr/sqllib/db2dump/db2diag.log1"); - 要显示对应于
ecfId = 0x1C30000E的函数信息,请输入以下任一命令:db2diag -ecfid 0x1C30000E
这将显示函数名,组件和产品名。db2diag -ecfid 472907790 - 要仅显示包含
eduid = 123的记录,请输入以下命令:db2diag -eduid 123 - 要显示包含
eduid = 123或eduid = 5678的所有记录,请输入以下命令:db2diag -eduid "123,5678" - 要显示线程使用
eduid = 15生成的所有严重错误消息,请输入以下任一命令:db2diag -g "level=Severe, eduid=15"db2diag -g level=Severe | db2diag -eduid 15 - 要显示来自数据库分区 1 的最后 5 个格式化记录,请输入:
db2diag -lastrecords 5 -node 1 -fmt "%{ts} %{node}" 要从所有 db2diag.log 文件中读取最后 10 行,请输入以下命令:
db2diag -lastlines 10要合并每个日志文件的最后 20 行中的记录,请执行以下操作:
db2diag -merge file1 file2 file3... -lastlines 20要显示来自所有主机的每个 db2diag.log 文件的最后 20 行中的记录,请执行以下操作:
db2diag -global -lastlines 20要显示最后 100 行中所有级别为 "错误" 的记录:
db2diag -g level=Error -lastlines 100
使用说明
- 每个选项只能显示一次。 它们可以按任何顺序指定,并且可以具有可选参数。 不能组合参数的短名称。 例如,使用 -l -e 而不是 -le。
- 缺省情况下, db2diag 会在当前目录中查找 db2diag 日志文件。 如果找不到该文件,那么接下来将搜索 diagpath 配置参数设置的目录。 如果找不到 db2diag 日志文件,那么 db2diag 将返回错误并退出。
- 可以在单个命令行上组合过滤和格式化选项,以使用管道执行复杂搜索。 只有在执行所有过滤后,才应使用格式化选项 -fmt, -strict,-cbe和 -verbose ,以确保仅过滤具有标准字段的原始记录消息,而不过滤用户定义或省略的那些字段。 使用管道时不需要使用
-。 - 当使用管道并且在命令行上指定了一个或多个文件名时,根据是否指定了
-,将以不同方式处理 db2diag 输入。 如果省略了-,那么将从指定的文件中获取输入。 相反,当指定-选项时,将忽略文件名 (即使在命令行上存在) 并使用来自终端的输入。 当使用管道并且未指定文件名时,将以完全相同的方式处理 db2diag 输入,无论是否在命令行上指定了-。 - 当输出与模式不匹配的所有记录时, -exist 选项会覆盖反转匹配搜索的缺省 db2diag 行为,无论这些记录是否包含正确的字段。 指定 -exist 选项时,将仅处理包含所请求字段的记录并输出这些记录。
- 如果未指定 -fmt (format) 选项,那么输出的所有消息 (已过滤或未过滤) 与写入诊断日志文件的消息完全相同。 可以使用 -strict,-cbe和 -verbose 选项来更改输出记录格式。
- -fmt 选项覆盖 -strict,-cbe 和 -verbose 选项。
- 如果指定了 -cbe 选项,并且 db2diag 日志文件已通过网络从原始计算机传输,那么存在一些限制。 db2diag 工具收集有关 Db2 和本地计算机主机名的信息,这意味着本地系统的 Db2 版本和源或报告者 componentID 位置字段可能与原始计算机上使用的相应值不同。
- 建议在脚本中使用 db2diag 时指定 -readfile 选项。 它将确保从忽略任何终端输入的文件中读取。
- 通常,退出状态为0如果找到匹配项,并且1如果找不到匹配项。 退出状态为2如果输入数据和模式中存在语法错误,那么输入文件不可访问,或者发现其他错误。
- 可以在 db2diag 日志文件中找到由 Db2 文本搜索产生的严重错误。
- 请注意,使用此工具读取和过滤循环 db2diag 日志文件 (当 diagsize 数据库配置参数非零时) 将导致读取和过滤所有循环诊断日志文件 (最多 10 个文件)。
- 在进行复原时尝试连接到数据库将导致 db2diag.log中出现错误消息。 如果复原命令成功,那么可忽略这些错误消息。
