db2diag - db2diag 日誌分析工具指令
過濾及格式化單一及循環 db2diag 日誌檔。 如果設定 diagsize 資料庫管理程式配置參數,則 db2diag 指令會從循環 db2diag 日誌檔讀取。 否則,依預設,指令會從預設 db2diag.log 檔案讀取。
授權
無
必要連線
無
指令語法
指令參數
- -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
- 訊息的診斷層次。 層次為
Info
、Warning
、Error
、Severe
、Critical
及Event
。 - source
- 產生所記載錯誤的來源位置:
Origin
、OS
、Received
或Sent
。 - 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
、%funcname
、probe:%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
- 指定月份 (01 至 12)。
- DD
- 指定日期 (01 至 31)。
- hh
- 指定一天中的一個小時 (00 至 23)。
- mm
- 指定分鐘 (00 到 59)。
- ss
- 指定一分鐘的秒 (00 至 59)。
- nnnnnn
- 指定 UNIX 作業系統上的微秒數,或 Windows 作業系統上的毫秒數。
如果診斷日誌檔中沒有記錄時間戳記的完全相符項,則會使用早於指定時間戳記的最接近時間。
sleepInterval 選項指定休眠間隔 (以秒為單位)。 如果需要較小的時間單位,則可以將它指定為浮點值。 預設值為 2 秒
- -H | -history
- 顯示指定時間間隔的已記載訊息歷程。 可以使用下列選項來指定此選項:
- historyPeriod
- 指定在 historyPeriod指定的持續時間內,從最新記載的記錄開始顯示已記載的訊息。 historyPeriod 選項使用下列格式來指定:
Number timeUnit
,其中 數字 是時間單位的數目, timeUnit 指出時間單位的類型: M (月)、 d (日)、 h (小時)、 m (分鐘) 及 s (秒)。 數字 的預設值為 30, timeUnit 的預設值為 m。 - historyPeriod:historyReference
- 指定在 historyReference 指定的開始時間之後的時段內 (如果提供 historyPeriod 明確正值) ,顯示已記錄的訊息。 或記載的訊息會顯示在 historyReference 所指定結束時間之前的時段內 (如果提供 historyPeriod 的負值,或依預設) 所記錄的訊息。格式為 YYYY-MM-DD-hh.mm.ss。nnnnnn,其中:
- YYYY
- 指定年份。
- MM
- 指定月份 (01 至 12)。
- DD
- 指定日期 (01 至 31)。
- hh
- 指定一天中的一個小時 (00 至 23)。
- mm
- 指定分鐘 (00 到 59)。
- ss
- 指定一分鐘的秒 (00 至 59)。
- nnnnnn
- 指定微秒 (UNIX 作業系統) 或毫秒 (Windows 作業系統)。
- -t | -time
- 指定時間戳記值。 此選項可以與下列其中一個或兩個選項一起指定:
- startTime
- 顯示在 startTime 及 startTime之後記載的所有訊息。
- :endTime
- 顯示在 endTime 之前及 endTime時記載的所有訊息。
格式為 YYYY-MM-DD-hh.mm.ss。nnnnnn,其中:- YYYY
- 指定年份。
- MM
- 指定月份 (01 至 12)。
- DD
- 指定日期 (01 至 31)。
- hh
- 指定一天中的一個小時 (00 至 23)。
- mm
- 指定分鐘 (00 到 59)。
- ss
- 指定一分鐘的秒 (00 至 59)。
- nnnnnn
- 指定微秒 (UNIX 作業系統) 或毫秒 (Windows 作業系統)。
如果診斷日誌檔中沒有記錄時間戳記的完全相符項,則會使用最接近指定時間戳記的時間。
- -A | -archive dirName
- 同時保存單一及循環診斷日誌檔。 當指定此選項時,會忽略所有其他選項。 如果指定一或多個檔名,則會個別處理每一個檔案。 檔名後面會附加時間戳記 (格式為
YYYY-MM-DD-hh.mm.ss
)。您可以指定檔案名稱及要保存它的目錄。 如果未指定目錄,則會將檔案保存在檔案所在的目錄中,並從檔名擷取目錄名稱。
如果您指定目錄但未指定檔名,則會在現行目錄中搜尋 db2diag 日誌檔。 如果找到,則會將檔案保存在指定的目錄中。 如果找不到檔案,則會在 diagpath 及 alt_diagpath 配置參數指定的目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在指定的目錄中。
如果您未指定檔案或目錄,則會在現行目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在現行目錄中。 如果找不到檔案,則會在 diagpath 及 alt_diagpath 配置參數指定的目錄中搜尋 db2diag 日誌檔。 如果找到,它會保存在 diagpath 或 alt_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
或使用自動化工具的情況下。 使用 rah 或 db2_all 執行 db2diag 指令也需要使用 -readfile 選項。 - -rc rcList | switch
- 顯示特定 ZRC 或 ECF 十六進位或負十進位回覆碼之空格區隔清單 rcList的 Db2 內部錯誤回覆碼說明。 透過指定下列其中一個交換器,可以顯示 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 日誌檔。 如果診斷資料目錄路徑未分割,則指令會處理單一診斷日誌檔,如同未指定 -merge 選項一樣。db2diag -merge
- 在此範例中,透過使用下列指令設定 diagpath 資料庫管理程式配置參數,根據實體主機及資料庫分割區分割預設診斷資料目錄路徑:
db2 update dbm cfg using diagpath '"$h$n"'
此範例顯示如何從所有診斷日誌取得所有記錄的輸出,並合併兩個主機 (bower
及horton
) 上三個資料庫分割區的診斷日誌檔。 以下是六個 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
若要從每一個主機bower
及horton
上的所有三個資料庫分割區合併診斷資料目錄路徑中的所有六個 db2diag 日誌檔,並根據時間戳記來格式化輸出,請輸入下列指令:
其中 /temp/keon 是主機db2diag -global -merge -sdir /temp/keon -fmt %{ts}
bower
和horton
所共用的共用目錄,用來在處理期間儲存來自每一部主機的暫時合併檔案。 - 若要顯示所有嚴重錯誤訊息,請輸入下列其中一個指令:
或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
將會顯示不符合的所有記錄。 若只要輸出具有應用程式 ID 欄位的訊息,請輸入下列指令:db2diag -g appid!:=LOCAL
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.log 檔案的所有記錄。 記錄會在新增至檔案時顯示。 顯示畫面會繼續直到您按 Ctrl-C。db2diag -f db2diag.log
- 若要將 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 = 123
或eduid = 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中出現錯誤訊息。 如果還原指令成功,則這些錯誤訊息可忽略。