最新log日志分析范文模板 18页Word文档格式.docx
《最新log日志分析范文模板 18页Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新log日志分析范文模板 18页Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
db2diag-a自动将该文件以日期时间命名
下面是查看该文件时经常会碰到的一个片段(蓝色部分是为了便于讲解而加上去的编号):
-----------------------------------------------
201X-04-24-13.56.13.453290
(1)Instance:
svtdbm2
(2)Node:
100(3)
PID:
672(db2agent(SUN102)100)(4)TID:
1(5)Appid:
*N100.svtdbm2.0074F4174930(6)
bufferpoolservices(7)sqlbCheckAllocation(8)Probe:
800(9)Database:
SUN102(10)
上面的色部分分别如下含义:
1)timestamp(时间戳)
2)instance(数据库实例)
3)partitionnumber(分区号)
4)processanddatabase(进程和数据库)
5)threadId(线程ID)
6)applicationID(应用程序ID)
7)component(组件)
8)function(函数)
9)internalerrorpoint(内部错误指针)
10)database(数据库)
了解这些基本含义有助于分析和诊断DB2的相关问题。
2.要显示db2diag.log文件中所有关于119664进程的信息,可利用以下命令:
db2diag-pid119664
201X-10-11-19.01.56.555034-300I7109918C313LEVEL:
Event
PID:
119664TID:
1PROC:
db2star2
INSTANCE:
dimiNODE:
000
FUNCTION:
DB2UDB,config/install,sqlfLogUpdateCfgParam,probe:
30
CHANGE:
CFGDBM:
"
Instance_Memory"
<
automatic>
From:
11126"
To:
....
结合上述两种用法,以下命令将抽取db2diag.log文件中分区0和4上所有119664进程的相关信息:
db2diag-pid119664-n0,4
3.为显示db2diag.log文件中包含的时间戳“201X-11-02-11.00.907665-360”之后的所有信息,可用下述命令:
db2diag-time201X-11-02-11.00.907665-360
4.另外一个较有用的选项是“-rc”。
对于以前的DB2版本,用户经常希望了解的db2diag.log中的常出现十六进制返回码所提示的信息,在v8.2上,如果使用该选项便可得到关于这些十六进制返回码的解释。
如对于以下一段信息:
201X-10-19-12.19.46.033037-300I7202340C354LEVEL:
Severe
139048TID:
db2hmon4
DB2UDB,routine_infrastructure,sqlerFmpOneTimeInit,probe:
100
MESSAGE:
DiagData
DATA#1:
Hexdump,4bytes
0x2FF225B0:
FFFFFBEE....
......
为了解十六进制0xFFFFFBEE所提示的信息,可使用下面的命令:
db2diag-rcFFFFFBEE
其输出为:
InputECFstring'
FFFFFBEE'
parsedas0xFFFFFBEE(-1042).
ERROR:
../sqz/sqlzwhatisrc.C:
InputZRC0xFFFFFBEE(-1042)cannotbeidentifiedasaV7orV6ZRCvalue
即该返回码提示的错误码为:
SQL1042C,用户可使用:
db2"
?
sql1042"
获得关于这个错误的具体解释。
5.为显示db2diag.log中所记录的严重错误,使用:
db2diag-gi"
level=severe"
输出可参看例4中提供的。
如果要得到有关该工具的更多选项的帮助信息,可使用:
db2diag-h
使用db2diag工具的高级选项过滤查找db2diag.log诊断日志记录
内容
提要db2diag.log是DB2中非常重要的诊断日志,一般出现问题后,首先就要查看db2diag.log文件。
但是很多时候特别是在多分区数据库中,查看db2diag.log变得非常费时。
因为所有分区所有应用程序的诊断日志都会写到DB2的诊断日志中。
从DB2版本8.2开始,DB2提供了db2diag工具可以用来过滤查找特定的日志,
有时候我们需要做一些更高级的过滤查询,以便帮助我们进一步诊断问题,该文章通过例子对于db2diag中的高级选项做了介绍。
正文首先简单介绍db2diag.log中的条目构成,如下所示为一条标准的db2diag.log日志条目:
201X-12-26-19.09.14.702039+480I84831569A398LEVEL:
1060946TID:
db2agent(XXXX)0
db2inst1NODE:
000DB:
XXXX
APPHDL:
0-222APPID:
C0A86402.OD11.03F806110349
DB2UDB,relationdataserv,sqlrr_fetch,probe:
20
RETCODE:
ZRC=0x801201X6=-2146303866=SQLR_PRTCLE"
DRDAProtocolError"
其中上面的黑体字部分是我们的每条诊断日志的不同列标识。
其中FUNCTION包含:
PRODUCT,COMPONENT,FUNCNAME,PROBE,这几个也是可以单独搜索的列标志。
利用db2diag工具的-g选项可以对每一个列标志进行搜索,下面是-g选项的说明:
-g:
搜索符合搜索一系列“<
列标志>
=<
列值>
”条件的诊断日志记录,条件中间使用逗号分开。
搜索区分大小写。
-gi:
功能等同于-g,搜索不区分大小写。
-gv:
搜索不符合一系列“<
-gvi:
功能等同于-gv,搜索不区分大小写。
另外我们的条件表达式支持如下几种:
=全字精确匹配查询
:
=部分匹配模糊查询
!
=查找不符合全字精确匹配查询条件的记录
=查找不符合部分匹配模糊查询条件的记录
^=选择查找列中以后面的查找条件开头的记录
^=选择查找列中不以后面的查找条件开头的记录
关于高级查找功能的帮助,您可以随时通过"
db2diag-hfilter"
获得。
另外db2diag还对于特定的列标志提供了快捷选项,如LEVEL,可以使用-l选项指定,NODE可以使用-n选项指定。
下面我们就以几个例子演示一下如何使用高级查找功能:
1、查找应用程序句柄APPHDL为0-222的所有诊断日志条目:
db2diag-gAPPHDL="
0-222"
2、查找应用程序句柄APPHDL为0-222在分区0上的所有诊断日志条目:
NODE=000
3、查找进程1060946的所有严重错误(Severe):
db2diag-gPID=1060946,LEVEL=Severe
4、查找所有FUNCTION名称中包饭fetch的诊断日志条目:
db2diag-gFUNCTION:
=fetch
5、查找所有component名称以"
basesys"
开头的诊断日志条目:
db2diag-g"
COMPONENT^=basesys"
6、查找所有返回码为"
ZRC=0x801201X6"
的记录:
db2diag-gRETCODE:
=0x801201X6
除了过滤查找之外,db2diag还可以格式化输出。
您可以指定查找结果的输出格式。
关于格式化输出的详细帮助,请使用"
db2diag-hfmt"
命令查看。
下面简单介绍一个例子:
db2diag-time201X-12-22-node"
0,1,2"
-level"
Severe,Error"
|db2diag-fmt"
Time:
%{ts}Partition:
%nodeMessageLevel:
%{level}\nPid:
%{pid}Tid:
%{tid}Instance:
%{instance}\nMessage:
@{msg}\n"
该命令将查找201X年12月22日以来在分区0,1,2上错误级别为Severe和Error的错误,并按照下面的格式输出:
201X-12-28-14.32.01.067843Partition:
000MessageLevel:
Error
Pid:
1871948Tid:
1Instance:
db2inst1
Message:
ZRC=0x860F000A=-2045837302=SQLO_FNEX"
Filenotfound."
DIA8411CAfile"
"
couldnotbefound.
篇二:
网站日志分析方法
数据分析的目的是进行调整策略和进一步提高,而不是为了分析而分析!
在分析日志的时候需要用到的工具:
光年日志分析工具、weblogexplorer、MSSQL。
我们应该从哪几个维度来进行数据的整理分析呢?
我们从基础信息、目录抓取、时间段抓取、IP抓取、状态码几点分布给大家讲解。
第一、基础信息
我们从日志中能够获取哪里基