db2diag.log的資料收集(DB2日誌文件)

db2diag.log文件中的標記都表示什麼含義?
環境:
產品: db2 udb
平臺: Cross Platform
軟件版本: v6, v7, v8

問題描述:
db2diag.log文件中的標記都表示什麼含義?

解答:
對db2diag.log文件的正確分析往往是排除錯誤的第一步, 該文件位於數據庫管理器的配置參數DIAGPATH指定的目錄下.下面是db2diag.log的部分摘取, 我們來分析一下它們的含義.

(1) 2002-05-17-17.30.32.140000 (2) Instance:DB2MPP (3) Node:000
(4) PID:2204(db2bp.exe) (5) TID:2224 (6) Appid:*LOCAL.DB2MPP.020517213032
(7) database_utilities (8) sqlubckp (9) Probe:26
DiagData
(10) 2cfc ffff
2002-05-17-20.17.20.793000 Instance:DB2MPP Node:000
PID:596(db2syscs.exe) TID:2176 Appid:
base_sys_utilities sqleMergeSqlca Probe:20 Database:SAMPLE
Received sqlcode 1496 for request 8000001e from node number 1
(11) Data Title:SQLCA PID:596 TID:2176 Node:000
sqlcaid : SQLCA sqlcabc: 136 sqlcode: 1496 sqlerrml: 0
sqlerrmc:
sqlerrp : SQLESRSU
sqlerrd : (1) 0x00000000 (2) 0x00000000 (3) 0x00000000
(4) 0x00000000 (5) 0x00000000 (6) 0x00000001
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:

1. 表示記這條日誌時的時間戳
2. 實例名. 該例子中的實例名是db2mpp
3. 分區號. 在單分區的數據庫中該值總爲0
4. 應用或代理的進程ID.
5. 應用或代理的線程ID. 該值只有在windows平臺上有效.
6. 應用ID. 該值對應於LIST APPLICATIONS命令的輸出.每一個應用都有唯一的應用ID.
7. 組件名稱(component).
8. 報錯或信息的功能模塊名, 該功能模塊從屬於上面的組件.
9. 功能模塊的probe point. 對應於返回錯誤和信息的功能模塊的源代碼的位置.
10. 診斷信息. 該例子中的db2diag.log文件來源於Windows平臺, 所以dump的信息是反字節順序的.爲了把該信息轉化爲sqlcode, 您需要把2cfc ffff轉化成爲 ffff fc2c同時從十六進制轉化爲十進制.請注意該值並不是都能轉化爲有效的sqlcode的.

 

如何使用 DB2 v8.2 新提供的 db2diag 執行程序對 db2diag.log 文件進行過濾和查找?


環境 產品:DB2 UDB
平臺:跨平臺
版本:v8.2

問題 對在 DB2 v8.2 產品中提供的新的診斷輔助工具 db2diag 所常用的幾個功能進行簡單的舉例說明。


解答 爲了方便用戶對 DB2 診斷日誌文件 db2diag.log 提供的信息的理解,在 DB2 v8.2 中增加了 db2diag 這一輔助診斷工具,這裏結合幾個具體舉例,對其常用的一些功能加以介紹。

該可執行程序:db2diag 位於以下路徑:

Unix 平臺 - $HOME/sqllib/bin
Windows 平臺 - SQLLIB/BIN


1. 在多分區實例下,可查看 db2diag.log 文件中指定分區的所有信息。如:用戶因第四個分區上的數據庫出現問題而僅希望查看該分區信息時,可使用以下命令:

db2diag -n 4

輸出的所有信息都將包含在“NODE: 004”中,參看下面的部分輸出。

2004-10-11-19.01.57.744218-300 E7115837C971 LEVEL: Event
PID : 119664 TID : 1 PROC : db2star2
INSTANCE: dimi NODE : 004
FUNCTION: DB2 UDB, base sys utilities, DB2StartMain, probe:911
MESSAGE : ADM7513W Database manager has started.
START : DB2 DBM
DATA #1 : Build Level, 124 bytes
....


2. 要顯示 db2diag.log 文件中所有關於 119664 進程的信息,可利用以下命令:

db2diag -pid 119664

2004-10-11-19.01.56.555034-300 I7109918C313 LEVEL: Event
PID : 119664 TID : 1 PROC : db2star2
INSTANCE: dimi NODE : 000
FUNCTION: DB2 UDB, config/install, sqlfLogUpdateCfgParam, probe:30
CHANGE : CFG DBM: "Instance_Memory" <automatic> From: "11126" To: "11126"
....

結合上述兩種用法,以下命令將抽取 db2diag.log 文件中分區 0 和 4 上所有 119664 進程的相關信息:

db2diag -pid 119664 -n 0,4


3. 爲顯示 db2diag.log 文件中包含的時間戳“2004-11-02-11.00.907665-360”之後的所有信息,可用下述命令:

db2diag -time 2004-11-02-11.00.907665-360


4. 另外一個較有用的選項是“-rc”。對於以前的 DB2 版本,用戶經常希望瞭解的 db2diag.log 中的常出現十六進制返回碼所提示的信息,在 v8.2 上,如果使用該選項便可得到關於這些十六進制返回碼的解釋。如對於以下一段信息:

2004-10-19-12.19.46.033037-300 I7202340C354 LEVEL: Severe
PID : 139048 TID : 1 PROC : db2hmon 4
INSTANCE: dimi NODE : 000
FUNCTION: DB2 UDB, routine_infrastructure, sqlerFmpOneTimeInit, probe:100
MESSAGE : DiagData
DATA #1 : Hexdump, 4 bytes
0x2FF225B0 : FFFF FBEE ....
......

爲了解十六進制 0xFFFF FBEE 所提示的信息,可使用下面的命令:

db2diag -rc FFFFFBEE

其輸出爲:

Input ECF string 'FFFFFBEE' parsed as 0xFFFFFBEE (-1042).
ERROR: ../sqz/sqlzwhatisrc.C:
Input ZRC 0xFFFFFBEE (-1042) cannot be identified as a V7 or V6 ZRC value

即該返回碼提示的錯誤碼爲: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的基本方法: http://www-900.ibm.com/cn/suppor ... DocId=1807545B21000
有時候我們需要做一些更高級的過濾查詢,以便幫助我們進一步診斷問題,該文章通過例子對於db2diag中的高級選項做了介紹。
正文 首先簡單介紹db2diag.log中的條目構成,如下所示爲一條標準的db2diag.log日誌條目:
2005-12-26-19.09.14.702039+480 I84831569A398 LEVEL: Severe
PID : 1060946 TID : 1 PROC : db2agent (XXXX) 0
INSTANCE: db2inst1 NODE : 000 DB : XXXX
APPHDL : 0-222 APPID: C0A86402.OD11.03F806110349
FUNCTION: DB2 UDB, relation data serv, sqlrr_fetch, probe:20
RETCODE : ZRC=0x80120086=-2146303866=SQLR_PRTCLE "DRDA Protocol Error"

其中上面的黑體字部分是我們的每條診斷日誌的不同列標識。其中FUNCTION包含:PRODUCT,COMPONENT,FUNCNAME,PROBE, 這幾個也是可以單獨搜索的列標誌。

利用db2diag工具的-g選項可以對每一個列標誌進行搜索,下面是-g選項的說明:

-g: 搜索符合搜索一系列“<列標誌>=<列值>”條件的診斷日誌記錄,條件中間使用逗號分開。搜索區分大小寫。
-gi: 功能等同於-g,搜索不區分大小寫。
-gv: 搜索不符合一系列“<列標誌>=<列值>”條件的診斷日誌記錄,條件中間使用逗號分開。搜索區分大小寫。
-gvi:功能等同於-gv,搜索不區分大小寫。

另外我們的條件表達式支持如下幾種:

= 全字精確匹配查詢
:= 部分匹配模糊查詢
!= 查找不符合全字精確匹配查詢條件的記錄
!:= 查找不符合部分匹配模糊查詢條件的記錄
^= 選擇查找列中以後面的查找條件開頭的記錄
!^= 選擇查找列中不以後面的查找條件開頭的記錄

關於高級查找功能的幫助,您可以隨時通過"db2diag -h filter" 獲得。

另外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"的記錄:

db2diag -g RETCODE:=0x80120086

除了過濾查找之外,db2diag還可以格式化輸出。您可以指定查找結果的輸出格式。關於格式化輸出的詳細幫助,請使用"db2diag -h fmt"命令查看。下面簡單介紹一個例子:

db2diag -time 2005-12-22 -node "0,1,2" -level "Severe, Error" |db2diag -fmt "Time: %{ts} Partition: %node Message Level:%{level} /nPid: %{pid} Tid: %{tid} Instance:%{instance}/nMessage: @{msg}/n"

該命令將查找2005年12月22日以來在分區0,1,2上錯誤級別爲Severe和Error的錯誤,並按照下面的格式輸出:

Time: 2005-12-28-14.32.01.067843 Partition: 000 Message Level:Error
Pid: 1871948 Tid: 1 Instance:db2inst1
Message: ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
DIA8411C A file "" could not be found.

db2diag工具非常強大,您可以查看DB2信息中心獲得db2diag的進一步使用幫助:

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0011728.htm

參考資料:
1、DB2 Information Center: http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/anyoneking/archive/2007/11/29/1907206.aspx

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/anyoneking/archive/2007/11/29/1907206.aspx

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/anyoneking/archive/2007/11/29/1907206.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章