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的命令https://www.cndba.cn/hbhe0316/article/4801
db2diag -A 自动将该文件以日期时间命名
db2diag -A
3 用法
查看时间戳2019-09-27-13.50.03.775522+480以后的日志
db2diag -time 2019-09-27-13.50.03.775522+480
查看日志中含有严重错误的信息Severe
db2diag -level Severe
查看某个时间段以来,所有的Severe严重错误信息的信息
db2diag -level Severe -time 2019-09-26-23.07.56.853339+480
- 另外一个较有用的选项是“-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
DATA #1 : String, 33 bytes"Storage path does not exist or is inaccessible."
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 中所记录的严重错误,使用
db2diag -gi "level=severe"
6.查看某PID的所有日志信息
db2diag -pid 2295
结合上述两种用法,以下命令将抽取 db2diag.log 文件中分区 0 和 5 上所有 2295进程的相关信息:
db2diag -pid 2295 -n 0,5
利用db2diag工具的-g选项可以对每一个列标志进行搜索,下面是-g选项的说明:
-g: 搜索符合搜索一系列“<列标志>=<列值>”条件的诊断日志记录,条件中间使用逗号分开。搜索区分大小写。
-gi: 功能等同于-g,搜索不区分大小写。
-gv: 搜索不符合一系列“<列标志>=<列值>”条件的诊断日志记录,条件中间使用逗号分开。搜索区分大小写。
-gvi:功能等同于-gv,搜索不区分大小写。
另外我们的条件表达式支持如下几种:
= 全字精确匹配查询
:= 部分匹配模糊查询
!= 查找不符合全字精确匹配查询条件的记录
!:= 查找不符合部分匹配模糊查询条件的记录
^= 选择查找列中以后面的查找条件开头的记录
!^= 选择查找列中不以后面的查找条件开头的记录
另外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”开头的诊断日志条目:
db2diag -g "COMPONENT^=base sys"
6、查找所有返回码为”ZRC=0x80120086”的记录: https://www.cndba.cn/hbhe0316/article/4801
db2diag -g RETCODE:=0x80120086
日志级别
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 日志文件:https://www.cndba.cn/hbhe0316/article/4801
db2diag -g db=TESTDB
因此,将仅显示包含“DB: SAMPLE”的 db2diag 日志文件记录,如:https://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
时间戳被合并https://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
要合并这两个诊断日志文件并按时间戳记对记录进行排序,执行以下命令:
db2diag -merge db2diag.0.log db2diag.1.log -fmt %{ts} -level error
版权声明:本文为博主原创文章,未经博主允许不得转载。
oracle,linux