首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 db2diag 進階診斷日誌分析:過濾、格式化與多維度排查技巧

     編輯:DB2 教學

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符合「欄位=值」條件的記錄,區分大小寫,多條件用逗號分隔。
-gi同 -g,不區分大小寫。
-gv不符合條件的記錄,區分大小寫。
-gvi同 -gv,不區分大小寫。

條件運算子

  • = 全字精確匹配
  • := 部分模糊匹配
  • != 不等於精確值
  • !:= 不包含模糊值
  • ^= 以指定字串開頭
  • !^= 不以指定字串開頭

常用快捷選項

  • -l 指定 LEVEL(Severe, Error, Warning, Info)
  • -n 指定 NODE 號
  • -time 時間範圍

實戰範例

  1. 查詢特定應用控制代碼:db2diag -g APPHDL="0-222"
  2. 加上分區限制:db2diag -g APPHDL="0-222",NODE=000
  3. 特定 PID 的嚴重錯誤:db2diag -g PID=1060946,LEVEL=Severe
  4. 函數名含 fetch:db2diag -g FUNCTION:=fetch
  5. 元件以 "base sys" 開頭:db2diag -g "COMPONENT^=base sys"
  6. 特定返回碼:db2diag -g RETCODE:=0x80120086

格式化輸出自訂報表

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

輸出範例:

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 -h filter 查看完整過濾說明
  • db2diag -h fmt 查看格式化佔位符完整列表
  • DB2 Information Center:線上文檔
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved