签到成功

知道了

CNDBA社区CNDBA社区

DB2DIAG 命令学习

2021-10-01 17:11 1805 0 原创 DB2
作者: hbhe0316

1 位置
一般位于$INSTANCE_HOME/sqlib/db2dump
也可以用这种方法查看

db2 get dbm cfg  show detail| grep -i diag

或者直接db2diag回车,在最后一行,可以看到db2diag日志所在的路径。

2 用途
db2diag.log是用来记录DB2数据库运行中的信息的文件。
可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。
当文件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。
请按以下正确步骤操作:

确认应用、DB2已经停止。
将原db2diag.log文件备份到其它文件系统下。
删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。

注意:如果你觉得以上操作不保险的话,Db2提供了自动归档db2diag.log的命令

db2diag -A 自动将该文件以日期时间命名
db2diag -A

3 用法
查看时间戳2019-09-27-13.50.03.775522+480以后的日志

http://www.cndba.cn/hbhe0316/article/4801

db2diag -time 2019-09-27-13.50.03.775522+480

查看日志中含有严重错误的信息Severe

http://www.cndba.cn/hbhe0316/article/4801

db2diag -level Severe

查看某个时间段以来,所有的Severe严重错误信息的信息

db2diag -level Severe  -time 2019-09-26-23.07.56.853339+480
  1. 另外一个较有用的选项是“-rc”
    ```shell
    2019-09-26-23.07.56.853542+480 I2389720E793 LEVEL: Severe
    PID : 2295 TID : 139843514394368 PROC : db2sysc 0
    INSTANCE: db2inst1 NODE : 000 DB : TESTDB
    APPHDL : 0-8 APPID: *LOCAL.db2inst1.190926133701
    AUTHID : DB2INST1 HOSTNAME: db04
    EDUID : 24 EDUNAME: db2agent (TESTDB) 0
    FUNCTION: DB2 UDB, buffer pool services, sqlbCreateStorageGroup, probe:10664
    MESSAGE : ZRC=0x800201A5=-2147352155=SQLB_AS_INVALID_STORAGE_PATH
       "Storage path does not exist or is inaccessible."
    
    DATA #1 : String, 33 bytes
    Error during create storage group
    DATA #2 : Storage Group ID, PD_TYPE_SQLB_STORAGEGROUP_ID, 8 bytes
    1
    DATA #3 : Pointer, 8 bytes
    0x00007f2fa25e28a0
    DATA #4 : unsigned integer, 8 bytes

db2diag -rc 0x800201A5





查看sql1051具体信息
```shell
db2 ? sql1051

5 为显示 db2diag.log 中所记录的严重错误,使用http://www.cndba.cn/hbhe0316/article/4801

db2diag -gi "level=severe"

6.查看某PID的所有日志信息

db2diag -pid 2295

结合上述两种用法,以下命令将抽取 db2diag.log 文件中分区 0 和 5 上所有 2295进程的相关信息:

db2diag -pid 2295 -n 0,5

利用db2diag工具的-g选项可以对每一个列标志进行搜索,下面是-g选项的说明: http://www.cndba.cn/hbhe0316/article/4801

-g: 搜索符合搜索一系列“<列标志>=<列值>”条件的诊断日志记录,条件中间使用逗号分开。搜索区分大小写。
-gi: 功能等同于-g,搜索不区分大小写。
-gv: 搜索不符合一系列“<列标志>=<列值>”条件的诊断日志记录,条件中间使用逗号分开。搜索区分大小写。
-gvi:功能等同于-gv,搜索不区分大小写。http://www.cndba.cn/hbhe0316/article/4801

另外我们的条件表达式支持如下几种:

= 全字精确匹配查询
:= 部分匹配模糊查询
!= 查找不符合全字精确匹配查询条件的记录
!:= 查找不符合部分匹配模糊查询条件的记录
^= 选择查找列中以后面的查找条件开头的记录
!^= 选择查找列中不以后面的查找条件开头的记录

另外db2diag还对于特定的列标志提供了快捷选项,如LEVEL,可以使用-l选项指定,NODE可以使用-n选项指定。下面我们就以几个例子演示一下如何使用高级查找功能:

1、查找应用程序句柄APPHDL为0-222的所有诊断日志条目:

db2diag -g APPHDL="0-222"

2、查找应用程序句柄APPHDL为0-222在分区0上的所有诊断日志条目:

db2diag -g APPHDL="0-222",NODE=000

3、查找进程1060946的所有严重错误(Severe):

db2diag -g PID=1060946,LEVEL=Severe

4、查找所有FUNCTION名称中包饭fetch的诊断日志条目:

db2diag -g FUNCTION:=fetch

5、查找所有component名称以”base sys”开头的诊断日志条目: http://www.cndba.cn/hbhe0316/article/4801

db2diag -g "COMPONENT^=base sys"

6、查找所有返回码为”ZRC=0x80120086”的记录:

db2diag -g RETCODE:=0x80120086

日志级别

http://www.cndba.cn/hbhe0316/article/4801

Diaglevel refers to the Diagnostic error capture level configuration parameter.

There are 5 levels:
0 - No diagnostic data captured
1 - Severe errors only
2 - All errors
3 - All errors and warnings
4 - All errors, warnings and informational messages
The default is at   3.

Change the diagnostic level with the command:
[db2inst1@db04 db2dump]$ db2 terminate
DB20000I  The TERMINATE command completed successfully.
[db2inst1@db04 db2dump]$ db2 update dbm cfg using DIAGLEVEL 4
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
successfully.

补充说明:
如果实例中有若干数据库,并且您只希望显示与数据库“TESTDB”有关的消息,那么可以按如下所示过滤 db2diag 日志文件:

db2diag -g db=TESTDB

因此,将仅显示包含“DB: SAMPLE”的 db2diag 日志文件记录,如:

http://www.cndba.cn/hbhe0316/article/4801

2019-09-22-13.19.55.940725+480 E2181864E1432         LEVEL: Info
PID     : 2467                 TID : 139626907952896 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000            DB   : TESTDB
APPHDL  : 0-180                APPID: *LOCAL.db2inst1.190922051952
AUTHID  : DB2INST1             HOSTNAME: db04
EDUID   : 259                  EDUNAME: db2agent (TESTDB) 0
FUNCTION: DB2 UDB, database utilities, sqluxLogDataStats, probe:393
MESSAGE : Performance statistics
DATA #1 : String, 928 bytes

合并文件查询

db2diag -merge db2diag.0.log db2diag.1.log -fmt %{ts} -level SEREVE

时间戳被合并

http://www.cndba.cn/hbhe0316/article/4801

db2diag -merge db2diag.log db2diag.1.log -fmt %{ts} -level error
db2diag -merge db2diag.log db2diag.1.log -fmt %{ts} -level SEVERE

要合并这两个诊断日志文件并按时间戳记对记录进行排序,执行以下命令:

http://www.cndba.cn/hbhe0316/article/4801

db2diag -merge db2diag.0.log db2diag.1.log -fmt %{ts} -level error

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle,linux

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:2646837次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ