db2diag - db2diag 日誌分析工具指令

過濾及格式化單一及循環 db2diag 日誌檔。 如果設定 diagsize 資料庫管理程式配置參數,則 db2diag 指令會從循環 db2diag 日誌檔讀取。 否則,依預設,指令會從預設 db2diag.log 檔案讀取。

授權

必要連線

指令語法

Read syntax diagramSkip visual syntax diagramdb2diag-global-merge-global-merge-sdirsharedDirPathname filename-facility-facALLMAINOPTSTATS-gfieldPatternList-filterfieldPatternList-gifieldPatternList-gvfieldPatternList-givfieldPatternList-gvifieldPatternList-lastrecordsnumber-of-records-pidprocessIDList-tidthreadIDList-eduidEduIDList-tenantidTenantIDLIst-n-nodenodeList-e-errorerrorList-l-levellevelList-c-count-V-verbose-cbe-v-invert-exist-strict-rcrcListswitch-fmtformatString-o-outputpathName-f-followstartTime:sleepIntervalstartTime:sleepInterval-H-historyhistoryPeriod:historyReferencehistoryPeriod:historyReference-t-timestartTime:endTimestartTime:endTime-A-archivedirName-readfile-ecfid-h-optionList-help-optionList?-optionList-lastlinesnumber-of-lines

指令參數

-global
指定將來自所有主機上所有資料庫分割區的所有 db2diag 日誌檔併入日誌檔處理中。
附註: 此選項支援循環診斷日誌檔及位於分割診斷資料目錄中的檔案。 此選項也可以與 -follow 選項組合使用。
-merge
合併診斷日誌檔,並根據時間戳記來排序記錄。 此選項支援循環診斷日誌檔及位於分割診斷資料目錄中的檔案。

如果此參數後面沒有兩個以上以空格區隔的 檔名 值,則會合併 diagpath 資料庫管理程式配置參數與 alt_diagpath 資料庫管理程式配置參數所指定目錄中的 db2diag 日誌檔。 如果診斷資料目錄路徑分割多個資料庫分割區,則只會合併現行主機之資料庫分割區中的 db2diag 日誌檔。

如果只指定一個 檔名 ,或 diagpath 資料庫管理程式配置參數中指定的路徑只存在一個診斷檔案,且未設定 alt_diagpath 資料庫管理程式配置參數, 則指令會處理單一診斷日誌檔,如同未指定 -merge 指令參數一樣。

此參數不容許與 -facility-follow-archive 參數一起使用。 從 Db2® 9.7 版 Fix Pack 7 開始, -merge 參數支援自動合併 alt_diagpath 目錄中的 db2diag.log 檔案。

-global -merge -sdir sharedDirPathname
同時指定 -global-merge 選項會導致合併所有主機上所有資料庫分割區的所有 db2diag 日誌檔,以及根據時間戳記排序的記錄。 此參數支援循環診斷日誌檔及位於分割診斷資料目錄中的檔案。

必須指定 -sdir sharedDirPathname 參數,以暫時儲存從不同主機取得的合併診斷日誌檔。 在處理完成之後,會刪除暫時合併的診斷日誌檔。 sharedDirPathname 變數必須指定所有主機都具有存取權及寫入權的共用目錄。

filename
指定要處理之 Db2 診斷日誌的一個以上以空格區隔的路徑名稱。 如果省略檔名,則會處理現行目錄中的 db2diag 日誌檔。 如果找不到檔案,則會搜尋 diagpath 資料庫管理程式配置參數所設定的一或多個目錄。
-facility | -fac
從對應的機能讀取檔案。 機能是記錄的邏輯分組。 例如,所有最佳化工具統計資料記錄都分組到 OPTSTATS 機能中。 依預設,輸出將採用文字格式。 有效的機能選項為下列值:
ALL
從所有設備傳回記錄。
MAIN
Db2 一般診斷日誌 (例如 db2diag 日誌檔) 及循環事件日誌中傳回記錄。
OPTSTATS
傳回與最佳化工具統計資料相關的記錄。
-fmt formatString
使用格式字串 formatString來格式化 db2diag 輸出,其中包含格式為 %field%{field}@field@{field}的記錄欄位。 %{field}@{field} 用來將欄位名稱與可能接在欄位名稱後面的英數字元 (或任何其他容許的字元) 隔開。 所有欄位名稱都不區分大小寫。 欄位名稱可以縮短為辨識欄位名稱所需的前幾個字元,沒有語義不明確。 此外,別名可以用於具有完整名稱的欄位。 欄位名稱、% 或 @ 之前的字首指定如果欄位是空的,則會顯示 (%) 或不顯示 (@) 欄位之前的文字。

目前可用的欄位如下:

timestamp | ts
時間戳記。 此欄位可以分成其組成欄位: %tsyear%tsmonth%tsday%tshour%tsmin (分鐘)、 %tssec (秒)、 %tsmsec (微秒用於 UNIX 作業系統,毫秒用於 Windows 作業系統)。
timezone | tz
與 UTC (世界標準時間) 不同的分鐘數。 例如, -300 是「東部時間」。
recordid | recid
記錄的唯一英數 ID ,例如 I11455A696。
audience
已記載訊息的預期讀者。 'E' 指出外部使用者 (IBM 客戶、服務分析師及開發人員)。 'I' 指出內部使用者 (服務分析師及開發人員)。 'D' 指出開發人員的除錯資訊。
level
訊息的診斷層次。 層次為 InfoWarningErrorSevereCriticalEvent
source
產生所記載錯誤的來源位置: OriginOSReceivedSent
instance | inst
實例名稱。
node
資料庫分割區伺服器號碼。
database | db
資料庫名稱。
pid
流程 ID。
tid
執行緒 ID。
eduid
EDU ID。
eduname
EDU 名稱。
tenantid
承租戶 ID
process
與程序 ID 相關聯的名稱,以雙引號括住。 例如,"db2sysc.exe"
product
產品名稱。 例如,DB2 COMMON
component
元件名稱。
funcname
函數名稱。
probe
探測號碼。
function
完整功能說明: %prod%comp%funcnameprobe:%probe
appid
應用程式 ID。 此值與 appl_id 監視器元素資料相同。 如需如何解譯此值的詳細資訊,請參閱 appl_id-應用程式 ID 監視器元素
coordnode
協調程式分割區。
coordindex
協調程式索引。
apphdl
應用程式控點: %coordnode - %coordindex
message | msg
錯誤訊息。
calledprod
傳回錯誤之函數的產品名稱。
calledcomp
傳回錯誤之函數的元件名稱。
calledfunc
傳回錯誤的函數名稱。
called
傳回錯誤之函數的完整說明,格式如下: %calledprod%calledcomp%calledfunc
rcval
回覆碼值 (32 位元組)。
rcdesc
錯誤說明。
retcode | rc
由稱為 %rcval %rcdesc的函數傳回的回覆碼。
errno
系統錯誤碼。
errname
系統特定的錯誤名稱。
oserror
系統呼叫所傳回的作業系統錯誤,格式為: %errno %errname
callstack
呼叫堆疊。
datadesc
資料說明。
dataobject
資料物件。
data
訊息的完整資料區段,格式如下: %datadesc %dataobject
argdesc
引數說明。
argobject
引數物件。
arg
傳回錯誤之函數呼叫的引數: %argdesc %argobject
Event descriptions:
impact
使用者影響 (僅適用於事件)。
startevent
開始事件說明 (*)。
stopevent
停止事件說明 (*)。
changeevent
變更事件說明 (*)。
init
起始設定事件說明 (*)。
fini
完成或終結事件說明 (*)。
startup
啟動事件說明 (*)。
terminate
終止事件說明 (*)。
bringdown
Bringdown 事件說明 (*)。
interrupt
岔斷事件說明 (*)。
associate
關聯事件說明 (*)。
disassociate
取消關聯事件說明 (*)。
changecfg
變更配置事件說明 (*)。
transfer
傳送事件說明 (*)。
dispatch
分派事件說明 (*)。
switch
切換事件說明 (*)。
report
報告事件說明 (*)。
get
取得事件說明 (*)。
free
可用事件說明 (*)。
open
開啟事件說明 (*)。
close
關閉事件說明 (*)。
work
工作事件說明 (*)。
wait
等待事件說明 (*)。
available
可用的事件說明 (*)。
connect
連接事件說明 (*)。
disconnect
切斷事件說明 (*)。
accept
接受事件說明 (*)。
recv
接收事件說明 (*)。
send
傳送事件說明 (*)。
create
建立事件說明 (*)。
destroy
毀損事件說明 (*)。
request
要求事件說明 (*)。
reply
回覆事件說明 (*)。
dependency
相依關係事件說明 (*)。
write
寫入事件說明 (*)。
read
讀取事件說明 (*)。
reset
重設事件說明 (*)。
collect
收集事件說明 (*)。
add
新增事件說明 (*)。
alter
變更事件說明 (*)。
drop
捨棄事件說明 (*)。
invalidate
使事件說明 (*) 失效。
grant
授與事件說明 (*)。
revoke
撤銷事件說明 (*)。
(*) Each event field has the following subfields:
{event}type
事件類型 (START、STOP、READ、WRITE、GET)。
{event}desc
事件說明 (含有事件資訊的標頭)。
{event}state
事件狀態 (成功、失敗、啟動、停止、進行中、閒置) 或事件進度 (以% 為單位)。
{event}attr
事件屬性 (商業層次、快取、同步、非同步、內部、外部、邏輯、實體、自動、手動、暫時、永久)。
{event}objid
唯一物件 ID (TABLE、CFG、DBM)。
{event}objname
事件物件名稱 (例如 ,"schema.tablename ")。
{event}objdata
物件資料 (在物件不是字串或簡式整數類型時使用,例如資料結構或某個複式類型)。
{event}qtype
事件限定元類型 (FROM、TO、ON、FOR、AT、BY、CONTEXT)。
{event}qname
事件限定元名稱或值 (例如, FOR "DB ABC")。
{event}qdhdr
事件限定元資料標頭 (包含類型、文字說明及資料大小)。 與%{event}qdata 欄位一起使用。
{event}qdata
事件限定元資料 (如果限定元不是字串或簡式整數類型,例如部分資料結構或複式類型,則使用)。

在前述清單中, {event} 關鍵字應該以事件類型替代特定事件 (例如,開始、停止、變更、讀取或寫入)。

若要一律在欄位名稱之前顯示文字 (例如,針對必要欄位) ,應該使用% 欄位字首。 當此欄位包含部分資料時,若要顯示欄位名稱之前的文字,應該使用 @ 字首。 容許任何必要及選用欄位與對應文字說明的組合。

在格式字串內可辨識下列特殊字元: \n\r\f\v\t

與其他欄位相比,資料和引數欄位可以包含數個區段。 若要輸出特定區段,請在欄位名稱之後新增 [n] ,其中 n 是區段編號 (1≤ n ≤64)。 例如,若要輸出第一個資料物件及第二個資料說明區段,請使用 %{dataobj}[1]%{datadesc}[2]。 未使用 [n] 時,所有記載的區段都是使用與日誌訊息中所顯示完全相同的預先格式化記載資料來輸出,因此不需要在每一個資料欄位、引數欄位或區段之前新增適用的文字說明並分隔換行。

-filter fieldPatternList | -g fieldPatternList
fieldPatternList 是以逗點區隔的欄位型樣配對清單,格式如下: fieldName operator searchPattern
運算子可以是下列其中一個值:
=
僅選取包含構成完整單字之相符項的那些記錄。 (單字搜尋。)
:=
選取那些包含相符項的記錄,其中搜尋型樣可以是較大表示式的一部分。
!=
僅選取不相符的行。 (反轉單字相符。)
!:=
僅選取搜尋型樣可以是較大表示式一部分的非相符行。
^=
選取欄位值以指定搜尋型樣開頭的記錄。
!^=
選取欄位值不是以指定搜尋型樣開頭的記錄。

-fmt 選項所說明的相同欄位可用,但此選項未使用% 及 @ 字首。

-gi fieldPatternList
-g 參數相同,但不區分大小寫。
-gv fieldPatternList
搜尋不符合指定型樣的訊息。
-gvi | -giv fieldPatternList
-gv相同,但不區分大小寫。
-lastrecords number-of-records
顯示並過濾從 db2diag 日誌檔指定的最後記錄數。 對於每一個 db2diag 日誌檔,此參數會檢查指定的記錄數是否可用。 如果日誌檔中可用的記錄數小於您指定的記錄數, db2diag 指令會處理檔案中可用的所有記錄。 如果使用分割診斷資料目錄路徑,則會針對每一個路徑中每一個 db2diag 日誌檔傳回指定的最後記錄數。
-pid processIDList
只顯示列出處理程序 ID 的日誌訊息。
-tid threadIDList
只顯示含有列出之執行緒 ID 的日誌訊息。
-eduid EduIDList
從包含一個以上以逗點區隔的數值的 EDU ID 清單中尋找具有指定 EDU ID 的所有記錄。
-tenantidTenantIDList
從包含一個以上以逗點區隔的數值的 TENANT ID 清單中尋找具有指定 TENANT ID 的所有記錄。
-n | -node nodeList
只顯示列出資料庫分割區號碼的日誌訊息。
-e | -error errorList
只顯示具有列出之錯誤碼的日誌訊息。
-l | -level levelList
從包含一或多個逗點區隔文字值的嚴重性層次清單中尋找具有指定嚴重性層次的所有記錄,即: 參考資訊、警告、錯誤、嚴重、嚴重及事件。
-c | -count
顯示找到的記錄數。
-v | -invert
反轉型樣相符,以選取不符合指定型樣的所有記錄
-strict
每行僅使用一個 field: value 配對來顯示記錄。 將跳過所有空白欄位。 這可用於 Script 以簡化剖析。
-V | -verbose
輸出所有欄位,包括空白欄位。
-exist
定義在要求搜尋時如何處理記錄中的欄位。 如果指定此選項,則必須存在欄位才能處理。
-cbe
共用基本事件 (CBE) 標準狀況資料。
-o | -output pathName
將輸出儲存至完整 pathName指定的檔案。
-f | -follow
如果輸入檔是單一或循環的 db2diag 日誌檔,請指定在處理輸入檔的最後一筆記錄之後,工具不會終止。 相反地,指令會休眠指定的時間間隔 (sleepInterval) ,然後在輸入檔變成可用時嘗試讀取並處理進一步的記錄。 只會處理輸入檔最後 8 KB 的記錄。

-f 參數可以處理循環 db2diag 日誌檔。 例如,如果使用中的最新循環診斷日誌檔是 db2diag.23.log,則指令會讀取該檔案。 當該檔案符合其大小限制時,指令會讀取所建立的下一個循環日誌檔,即 db2diag.24.log

當監視由另一個處理程序寫入檔案的記錄時,可以使用此選項。 可以指定 startTime 選項來顯示在此時間之後所記載的所有記錄。 startTime 選項是使用下列格式來指定: YYYY-MM-DD-hh.mm.ss.nnnnnn,其中
YYYY
指定年份。
MM
指定月份 (0112)。
DD
指定日期 (0131)。
hh
指定一天中的一個小時 (0023)。
mm
指定分鐘 (0059)。
ss
指定一分鐘的秒 (0059)。
nnnnnn
指定 UNIX 作業系統上的微秒數,或 Windows 作業系統上的毫秒數。
可以省略年份欄位之後的部分或所有欄位。 如果省略它們,則會使用預設值。 預設值為 1 (代表月份和日期) ,以及 0 (代表所有其他欄位)。

如果診斷日誌檔中沒有記錄時間戳記的完全相符項,則會使用早於指定時間戳記的最接近時間。

sleepInterval 選項指定休眠間隔 (以秒為單位)。 如果需要較小的時間單位,則可以將它指定為浮點值。 預設值為 2 秒

-H | -history
顯示指定時間間隔的已記載訊息歷程。 可以使用下列選項來指定此選項:
historyPeriod
指定在 historyPeriod指定的持續時間內,從最新記載的記錄開始顯示已記載的訊息。 historyPeriod 選項使用下列格式來指定: Number timeUnit,其中 數字 是時間單位的數目, timeUnit 指出時間單位的類型: M (月)、 d (日)、 h (小時)、 m (分鐘) 及 s (秒)。 數字 的預設值為 30timeUnit 的預設值為 m
historyPeriod:historyReference
指定在 historyReference 指定的開始時間之後的時段內 (如果提供 historyPeriod 明確正值) ,顯示已記錄的訊息。 或記載的訊息會顯示在 historyReference 所指定結束時間之前的時段內 (如果提供 historyPeriod 的負值,或依預設) 所記錄的訊息。
格式為 YYYY-MM-DD-hh.mm.ssnnnnnn,其中:
YYYY
指定年份。
MM
指定月份 (0112)。
DD
指定日期 (0131)。
hh
指定一天中的一個小時 (0023)。
mm
指定分鐘 (0059)。
ss
指定一分鐘的秒 (0059)。
nnnnnn
指定微秒 (UNIX 作業系統) 或毫秒 (Windows 作業系統)。
-t | -time
指定時間戳記值。 此選項可以與下列其中一個或兩個選項一起指定:
startTime
顯示在 startTimestartTime之後記載的所有訊息。
:endTime
顯示在 endTime 之前及 endTime時記載的所有訊息。
如果要顯示從 startTimeendTime所記載的訊息,請指定 -t startTime:endTime
格式為 YYYY-MM-DD-hh.mm.ssnnnnnn,其中:
YYYY
指定年份。
MM
指定月份 (0112)。
DD
指定日期 (0131)。
hh
指定一天中的一個小時 (0023)。
mm
指定分鐘 (0059)。
ss
指定一分鐘的秒 (0059)。
nnnnnn
指定微秒 (UNIX 作業系統) 或毫秒 (Windows 作業系統)。
可以省略年份欄位之後的部分或所有欄位。 如果省略它們,則會使用預設值。 預設值為 1 (代表月份和日期) ,以及 0 (代表所有其他欄位)。

如果診斷日誌檔中沒有記錄時間戳記的完全相符項,則會使用最接近指定時間戳記的時間。

-A | -archive dirName
同時保存單一及循環診斷日誌檔。 當指定此選項時,會忽略所有其他選項。 如果指定一或多個檔名,則會個別處理每一個檔案。 檔名後面會附加時間戳記 (格式為 YYYY-MM-DD-hh.mm.ss)。

您可以指定檔案名稱及要保存它的目錄。 如果未指定目錄,則會將檔案保存在檔案所在的目錄中,並從檔名擷取目錄名稱。

如果您指定目錄但未指定檔名,則會在現行目錄中搜尋 db2diag 日誌檔。 如果找到,則會將檔案保存在指定的目錄中。 如果找不到檔案,則會在 diagpathalt_diagpath 配置參數指定的目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在指定的目錄中。

如果您未指定檔案或目錄,則會在現行目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在現行目錄中。 如果找不到檔案,則會在 diagpathalt_diagpath 配置參數指定的目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在 diagpathalt_diagpath 配置參數指定的目錄中。

db2diag -archive 選項隨附於 IBM® Data Server Driver Package 及 IBM Data Server for ODBC 和 CLI。 此選項可讓您在無實例用戶端上保存診斷日誌檔。 例如:
$ db2diag -A
db2diag: Moving "/home/usr1/clidriver/db2dump/db2diag.log"
         to "/home/usr1/clidriver/db2dump/db2diag.log_2010-09-14-01.16.26"
-readfile
強制從診斷日誌檔讀取,並忽略任何終端機輸入。 此選項可用於 Script 中,以保證 db2diag 將從檔案而非終端機讀取,特別是在停用 stdin 或使用自動化工具的情況下。 使用 rahdb2_all 執行 db2diag 指令也需要使用 -readfile 選項。
-rc rcList | switch
顯示特定 ZRC 或 ECF 十六進位或負十進位回覆碼之空格區隔清單 rcListDb2 內部錯誤回覆碼說明。 透過指定下列其中一個交換器,可以顯示 ZRC 或 ECF 回覆碼的完整清單:
zrc
顯示 Db2 ZRC 回覆碼的簡要說明。
ecf
顯示 Db2 ECF 回覆碼的簡要說明。
html
以 HTML 格式顯示 Db2 ZRC 回覆碼的簡要說明。

當指定此選項時,會忽略所有其他選項,並將輸出導向顯示畫面。

-ecfid ecfId
顯示從數值 ecfId擷取的函數資訊。 當指定此選項時,會忽略所有其他選項。
-h | -help | ?
顯示說明資訊。 指定此選項將忽略其他所有選項,只顯示說明資訊。 如果省略選項清單 optionList,其中包含一個以上以逗點區隔的指令參數,則會顯示具有簡要說明的所有可用選項的清單。 對於 optionList中指定的每一個選項,會顯示更詳細的資訊和用法範例。 可以使用下列其中一個參數取代 optionList 引數來修改說明輸出,以顯示工具及其用法的相關資訊:
brief
顯示所有選項的說明資訊,不含範例。
examples
顯示一些一般範例來協助使用工具。
tutorial
顯示說明進階功能的範例。
notes
顯示使用注意事項及限制。
all
顯示所有選項的完整資訊,包括每一個選項的用法範例。
-lastlines number-of-lines
顯示並過濾從 db2diag 日誌檔指定的最後幾行。 對於每一個 db2diag 日誌檔,此參數會檢查指定的行數是否可用。 如果日誌檔中可用的行數小於您指定的記錄數,則 db2diag 指令會處理檔案中所有可用的行。 如果使用分割診斷資料目錄路徑,則會針對每一個路徑中每一個 db2diag 日誌檔傳回指定的最後行數。

範例

以下是一些範例清單,說明如何在各種情況下使用 db2diag 指令:
  • 若要合併診斷資料目錄路徑中的所有 db2diag 日誌檔,請輸入下列指令:
    db2diag -merge
    如果根據資料庫分割區分割診斷資料目錄路徑,則此指令會從現行主機的所有資料庫分割區合併 db2diag 日誌檔。 如果診斷資料目錄路徑未分割,則指令會處理單一診斷日誌檔,如同未指定 -merge 選項一樣。
  • 在此範例中,透過使用下列指令設定 diagpath 資料庫管理程式配置參數,根據實體主機及資料庫分割區分割預設診斷資料目錄路徑:
    db2 update dbm cfg using diagpath '"$h$n"'
    此範例顯示如何從所有診斷日誌取得所有記錄的輸出,並合併兩個主機 ( bowerhorton) 上三個資料庫分割區的診斷日誌檔。 以下是六個 db2diag 日誌檔的清單:
    • ~/sqllib/db2dump/HOST_bower/NODE0000/db2diag.log
    • ~/sqllib/db2dump/HOST_bower/NODE0001/db2diag.log
    • ~/sqllib/db2dump/HOST_bower/NODE0002/db2diag.log
    • ~/sqllib/db2dump/HOST_horton/NODE0003/db2diag.log
    • ~/sqllib/db2dump/HOST_horton/NODE0004/db2diag.log
    • ~/sqllib/db2dump/HOST_horton/NODE0005/db2diag.log
    若要從所有六個 db2diag 日誌檔輸出記錄,請執行下列指令:
    db2diag -global
    若要從每一個主機 bowerhorton 上的所有三個資料庫分割區合併診斷資料目錄路徑中的所有六個 db2diag 日誌檔,並根據時間戳記來格式化輸出,請輸入下列指令:
    db2diag -global -merge -sdir /temp/keon -fmt %{ts}
    其中 /temp/keon 是主機 bowerhorton所共用的共用目錄,用來在處理期間儲存來自每一部主機的暫時合併檔案。
  • 若要顯示所有嚴重錯誤訊息,請輸入下列其中一個指令:
    db2diag -level critical
    db2diag -g 'level=Critical'
  • 若要顯示處理程序 ID (PID) 為 52356 且在資料庫分割區 1、2 或 3 上所產生的所有嚴重錯誤訊息,請輸入下列指令:
    db2diag -g level=Severe,pid=952356 -n 1,2,3
  • 若要顯示包含資料庫 SAMPLE 及實例 aabrashk的所有訊息,請輸入下列指令:
    db2diag -g db=SAMPLE,instance=aabrashk
  • 若要顯示包含資料庫欄位的所有嚴重錯誤訊息,請輸入下列指令:
    db2diag -g db:= -gi level=severe
  • 顯示包含 Db2 ZRC 回覆碼 0x87040055及應用程式 ID G916625D.NA8C.068149162729,輸入下列指令:
    db2diag -g msg:=0x87040055 -l Error | db2diag -gi appid^=G916625D.NA
  • 若要顯示不包含 LOADID 資料的所有訊息,請輸入下列指令:
    db2diag -gv data:=LOADID
  • 若要僅顯示應用程式 ID 欄位中不包含 LOCAL 型樣的已記載記錄,請輸入下列其中一個指令:
    db2diag -gi appid!:=local
    db2diag -g appid!:=LOCAL
    將會顯示不符合的所有記錄。 若只要輸出具有應用程式 ID 欄位的訊息,請輸入下列指令:
    db2diag -gvi appid:=local -exist
  • 若要顯示在時間戳記為 2003-03-03-12.16.26.230520 的訊息之後記載的所有訊息,請輸入下列指令:
    db2diag -time 2003-03-03-12.16.26.230520
  • 若要顯示過去三天所記載的嚴重錯誤,請輸入下列指令:
    db2diag -gi "level=severe" -H 3d
  • 若要顯示不符合 funcname 欄位的 pdLog 型樣的所有日誌訊息,請輸入下列其中一個指令:
    db2diag -g 'funcname!=pdLog'
    db2diag -gv 'funcn=pdLog'
  • 若要顯示包含從 "base sys" 開始之元件名稱的所有嚴重錯誤訊息,請輸入下列指令:
    db2diag -l severe | db2diag -g "comp^=base sys"
  • 若要檢視 db2diag.log 檔案的成長,請輸入下列指令:
    db2diag -f db2diag.log
    這會顯示寫入現行目錄中 db2diag.log 檔案的所有記錄。 記錄會在新增至檔案時顯示。 顯示畫面會繼續直到您按 Ctrl-C。
  • 若要將 db2diag.log 的環境定義寫入位於 /home/user/Logs 目錄中的 db2diag_123.log 檔案,請輸入下列指令:
    db2diag -o /home/user/Logs/db2diag_123.log
  • 若要使用預設值從 Perl Script 呼叫 db2diag ,請輸入:
    system("db2diag -readfile");
  • 這將強制 db2diag 處理 diagpath 配置參數所指定目錄中的 db2diag.log/db2diag.*.log 檔案 (如果已設定資料庫管理程式 diagsize 配置參數,則會輪替日誌)。

  • 若要從指定的目錄讀取 db2diag.log1 檔案,並忽略任何終端機輸入,請輸入:
    system("db2diag -readfile /u/usr/sqllib/db2dump/db2diag.log1");
  • 若要顯示對應於 ecfId = 0x1C30000E的功能資訊,請輸入下列其中一個指令:
    db2diag -ecfid 0x1C30000E
    db2diag -ecfid 472907790
    這會顯示函數名稱、元件及產品名稱。
  • 若只要顯示包含 eduid = 123的已記載記錄,請輸入下列指令:
    db2diag -eduid 123
  • 若要顯示包含 eduid = 123eduid = 5678的所有記錄,請輸入下列指令:
    db2diag -eduid "123,5678"
  • 若要顯示由具有 eduid = 15的執行緒所產生的所有嚴重錯誤訊息,請輸入下列其中一個指令:
    db2diag -g "level=Severe, eduid=15"
    db2diag -g level=Severe | db2diag -eduid 15
  • 若要顯示資料庫分割區 1 中最後 5 個格式化記錄,請輸入:
    db2diag -lastrecords 5 -node 1 -fmt "%{ts} %{node}"
  • 若要從所有 db2diag.log 檔案中讀取最後 10 行,請輸入下列指令:

     db2diag -lastlines 10
  • 如果要合併每一個日誌檔最後 20 行中的記錄,請執行下列動作:

     db2diag -merge file1 file2 file3... -lastlines 20
  • 若要從所有主機顯示每一個 db2diag.log 檔案最後 20 行中的記錄,請執行下列動作:

     db2diag -global -lastlines 20
  • 若要顯示最後 100 行中具有「層次 = 錯誤」的所有記錄:

    db2diag -g level=Error -lastlines 100

使用注意事項

  • 每一個選項只能出現一次。 它們可以依任何順序指定,並且可以具有選用參數。 您無法結合參數的簡稱。 例如,使用 -l -e 而非 -le
  • 依預設, db2diag 會在現行目錄中尋找 db2diag 日誌檔。 如果找不到檔案,則接下來會搜尋 diagpath 配置參數所設定的目錄。 如果找不到 db2diag 日誌檔, db2diag 會傳回錯誤並結束。
  • 可以在單一指令行上結合過濾及格式化選項,以使用管道來執行複式搜尋。 只有在完成所有過濾之後,才應該使用格式化選項 -fmt-strict-cbe-verbose ,以確保只會過濾具有標準欄位的原始記載訊息,而不是使用者所定義或省略的那些欄位。 使用管道時,不需要使用 -
  • 當使用管線並在指令行上指定一或多個檔名時,根據是否已指定 - ,會以不同方式處理 db2diag 輸入。 如果省略 - ,則會從指定的檔案取得輸入。 相反地,當指定 - 選項時,會忽略檔名 (即使出現在指令行上) ,並使用來自終端機的輸入。 當使用管線且未指定檔名時,處理 db2diag 輸入的方式與指令行上指定的 - 或不指定完全相同。
  • 當輸出所有不符合型樣的記錄時,不論它們是否包含適當的欄位, -exist 選項都會置換反轉相符搜尋的預設 db2diag 行為。 指定 -exist 選項時,只會處理包含所要求欄位的記錄並輸出。
  • 如果未指定 -fmt (格式) 選項,則所有訊息 (已過濾或未過濾) 的輸出與寫入診斷日誌檔中的訊息完全相同。 可以使用 -strict-cbe-verbose 選項來變更輸出記錄格式。
  • -fmt 選項會置換 -strict-cbe-verbose 選項。
  • 當指定 -cbe 選項,且已從原始電腦透過網路傳送 db2diag 日誌檔時,會有一些限制。 db2diag 工具會在本端收集 Db2 及電腦主機名稱的相關資訊,這表示本端系統的 Db2 版本及來源或報告程式 componentID 位置欄位可能與原始電腦上使用的對應值不同。
  • 在 Script 中使用 db2diag 時,建議指定 -readfile 選項。 它將確保從檔案讀取忽略任何終端機輸入。
  • 通常,結束狀態為0if found matches , and1如果找不到相符項。 結束狀態為2如果輸入資料及型樣中有語法錯誤,則無法存取輸入檔,或找到其他錯誤。
  • 可以在 db2diag 日誌檔中找到 Db2 「文字搜尋」所產生的嚴重錯誤。
  • 請注意,使用此工具來讀取及過濾循環 db2diag 日誌檔 (當 diagsize 資料庫配置參數為非零時) 將導致讀取及過濾所有循環診斷日誌檔 (一系列最多 10 個檔案)。
  • 嘗試在進行還原時連接至資料庫會導致 db2diag.log中出現錯誤訊息。 如果還原指令成功,則這些錯誤訊息可忽略。