db2diag - db2diag ログ分析ツール・コマンド

db2diag単一ログ・ファイルと循環ログ・ファイルの両方をフィルターに掛け、フォーマット設定します。 db2diag コマンドは、 diagsize データベース・マネージャー構成パラメーターを設定すると、ローテーション 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
診断ログ・ファイルをマージし、レコードをタイム・スタンプに基づいてソートします。 このオプションは、循環診断ログ・ファイルと、分割診断データ・ディレクトリー内のファイルをサポートします。

このパラメーターの後に複数の filename 値がスペースで区切られていない場合、 diagpath データベース・マネージャー構成パラメーターおよび alt_diagpath データベース・マネージャー構成パラメーターによって指定されたディレクトリー内の db2diag ログ・ファイルがマージされます。 診断データ・ディレクトリー・パスが複数のデータベース・パーティションにまたがって分割されている場合、現在のホストのデータベース・パーティションにある db2diag ログ・ファイルのみマージされます。

ファイル名が1つだけ指定された場合、またはdiagpathデータベース・マネージャー構成パラメーターの指定パスに診断ファイルが1つだけあり、alt_diagpathデータベース・マネージャー構成パラメーターが設定されない場合、単一の診断ログ・ファイルは、-mergeコマンド・パラメーターが指定されないみたいに、コマンドに実行されません。

このパラメーターは、-facility-follow、または-archiveパラメーターと一緒に使用できません。 Db2® バージョン 9.7 フィックスパック 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
%field%{field}@field、または @{field}の形式のレコード・フィールドを含むフォーマット・ストリング formatStringを使用して、 db2diag 出力をフォーマットします。 %{field}@{field}は、フィールド名を、フィールド名の後に続く英数字(またはその他の許可された文字)から分離するために使われます。 フィールド名はすべて大文字小文字を区別しません。 フィールド名は、フィールド名を固有に識別するために必要な範囲で、 最初の数文字に短縮することができます。 さらに、長い名前のフィールドには別名を使用できます。 フィールド名の前の接頭部 % または @ は、 フィールドが空の場合にフィールドの前のテキストを表示する (%) かしない (@) かを指定します。

現在、次のフィールドが使用可能です。

timestamp | ts
タイム・スタンプ。 このフィールドは、 %tsyear%tsmonth%tsday%tshour%tsmin (分)、 %tssec (秒)、 %tsmsec (UNIX オペレーティング・システムの場合はマイクロ秒、Windows オペレーティング・システムの場合はミリ秒) の各構成要素フィールドに分割できます。
timezone | tz
UTC (Universal Coordinated Time) との差 (分)。 例えば、東部標準時の場合は -300 です。
recordid | recid
レコードの固有の英数字 ID (例えば I11455A696)。
audience
ログに記録されたメッセージの対象ユーザー。 'E' は、外部ユーザー (IBM のお客様、サービス・アナリスト、および開発者) を示します。 'I' は、内部ユーザー (サービス・アナリストおよび開発者) を示します。 'D' は、開発者のデバッグ情報を示します。
level
メッセージの診断レベル。 そのレベルは、InfoWarningErrorSevereCriticalEventです。
source
ログ記録エラーの発生元のロケーション: OriginOSReceived、または 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%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
停止イベントの説明 (*)。
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} キーワードを特定のイベントのイベント・タイプに置き換えてください (例えば、start、stop、change、read、または write)。

フィールド名の前のテキストを常に表示する (例えば、必須フィールドの場合など) には、 % フィールド接頭部が使用されます。 あるフィールドにデータが入っている場合に、そのフィールド名の前のテキストを表示するには、 @ 接頭部を使用します。 必須フィールドおよびオプション・フィールドは、任意のテキスト記述と組み合わせることができます。

フォーマット文字列に認識される特殊文字は、\n\r\f\v\tです。

他のフィールドとは対照的に、データおよび引数フィールドにはいくつかのセクションを含めることができます。 特定のセクションを出力するには、フィールド名の後に[n]を追加します。ここで、はセクション番号 (1≤ n ≤64) です。 例えば、最初のデータ・オブジェクトと2番目のデータ記述セクションを出力するには、%{dataobj}[1]%{datadesc}[2]を使ってください。 [n]を使用しない場合、ログに記録されるすべてのセクションは、ログメッセージに表示されるとおりに、事前にフォーマットされたログデータに出力されるため、各データフィールド、引数フィールド、またはセクションの前に、該当テキスト説明を追加したり、改行を区切ったりする必要はありません。

-filter fieldPatternList | -g fieldPatternList
fieldPatternList は、fieldName operator searchPatternという形式のフィールドとパターンのペアのコンマ区切りリストです。
演算子は以下の値の 1 つにすることができます。
=
単語単位で一致する対象を含むレコードだけを選択します。 (ワード検索。)
:=
検索パターンが大きな対象の一部と一致する場合に、その対象を含むレコードだけを選択します。
!=
一致しない行だけを選択します。 (逆転ワード・マッチング。)
!:=
検索パターンが大きな対象の一部と一致する場合に、その対象を含まない行だけを選択します。
^=
指定された検索パターンで始まるフィールド値のレコードを選択します。
!^=
指定された検索パターンで始まらないフィールド値のレコードを選択します。

%および@プレフィックスが-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
1 つ以上のコンマ区切り数値が含まれる EDU ID リストから、指定した EDU ID を持つすべてのレコードを検出します。
-tenantidTenantIDList
1 つ以上のコンマ区切り数値が含まれる TENANT ID リストから、指定した TENANT ID を持つすべてのレコードを検出します。
-n | -node nodeList
リストに含まれているデータベース・パーティション番号のログ・メッセージだけを表示します。
-e | -error errorList
リストに含まれているエラー番号のログ・メッセージだけを表示します。
-l | -level levelList
1 つまたは複数のコンマ区切りテキスト値 (情報、警告、エラー、重大、クリティカル、イベント) が含まれる重大度レベル・リストから、指定した重大度レベルを持つすべてのレコードを検出します。
-c | -count
検出されたレコードの数を表示します。
-v | -invert
パターン・マッチングを反転させて、 指定されたパターンと一致しないすべてのレコードを選択します。
-strict
1行に1つのfield: valueペアのみを使用してレコードを表示します。 空のフィールドはすべて省略されます。 解析を単純化するために、これをスクリプト用に使用できます。
-V | -verbose
すべてのフィールドを、空のフィールドも含めて出力します。
-exist
検索が要求されるときの、レコード内のフィールドが処理される方法を定義します。 このオプションが指定される場合、処理されるフィールドが存在しなければなりません。
-cbe
Common Base Event (CBE) Canonical Situation Data
-o | -output pathName
完全修飾 pathName で指定されたファイルに出力を保存します。
-f | -follow
入力ファイルが単一および循環 db2diag ログ・ファイルである場合、 入力ファイルの最後のレコードが処理された後にツールが終了しないことを指定します。 その代わりに、コマンドは指定された期間 (sleepInterval) スリープ状態となり、その後、使用できる状態になるときに入力ファイルから追加のレコードの読み取りと処理を試行します。 入力ファイルの最後の 8 キロバイトに含まれるレコードのみが処理されます。

-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 オペレーティング・システムではミリ秒を指定します。
年フィールドに続くフィールドのいくつかまたはすべては、省略できます。 それらが省略されると、デフォルト値が使用されます。 月および日のデフォルト値は 1 であり、他のすべてのフィールドのデフォルト値は 0 です。

レコードのタイム・スタンプに正確に一致するものが診断ログ・ファイルに存在しない場合、指定されたタイム・スタンプより前の、最も近い時刻が使用されます。

sleepInterval オプションは、スリープ・インターバルを秒数で指定します。 さらに小さな単位が必要な場合、 浮動小数点の値で指定できます。 デフォルト値は 2 秒です。

-H | -history
指定された期間、ログに記録されたメッセージの履歴を表示します。 このオプションには、以下のオプションを指定できます。
historyPeriod
ログに記録されたメッセージが、最後に記録されたレコードから始めて、 historyPeriod で指定された期間に関して表示されるように指定します。 historyPeriod オプションは、Number timeUnitの形式で指定します。ここで、数値 は時間単位の数、時間単位 は時間単位のタイプを示します。M(月)、D (日)、H (時間)、 (分)、s (秒) です。 Number のデフォルト値は 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
タイム・スタンプの値を指定します。 このオプションには、以下のオプションの 1 つまたは両方を指定できます。
startTime
startTime の時点と startTime の後にログに記録されたすべてのメッセージを表示します。
:endTime
endTime の前と endTime の時点でログに記録されたすべてのメッセージを表示します。
startTime から endTimeまでログに記録されたメッセージを表示するには、 -t startTime: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 オペレーティング・システム) を指定します。
年フィールドに続くフィールドのいくつかまたはすべては、省略できます。 それらが省略されると、デフォルト値が使用されます。 月および日のデフォルト値は 1 であり、他のすべてのフィールドのデフォルト値は 0 です。

レコードのタイム・スタンプに正確に一致するものが診断ログ・ファイルにない場合、 指定されたタイム・スタンプに最も近い時刻が使用されます。

-A | -archive dirName
単一の診断ログ・ファイルと循環診断ログ・ファイルの両方をアーカイブします。 このオプションを指定した場合、 他のすべてのオプションは無視されます。 1 つ以上のファイル名が指定されると、各ファイルは個別に処理されます。 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
端末入力を無視して、診断ログ・ファイルから読み取ることを強制します。 このオプションは、特に stdin が使用不可になっている場合や自動化ツールが使用されている場合に、 db2diag が端末からではなくファイルから読み取ることを保証するためにスクリプトで使用できます。 rah または db2_all を使用して db2diag コマンドを実行するには、-readfile オプションも使用する必要があります。
-rc rcList | switch
特定の ZRC または ECF の 16 進数または負の 10 進数戻りコードの、スペース区切りリスト rcListDb2 内部エラー戻りコードの説明を表示します。 以下のスイッチの 1 つを指定することによって、 ZRC または ECF 戻りコードの完全なリストを表示できます。
zrc
Db2 ZRC 戻りコードに関する簡略説明を表示します。
ecf
Db2 ECF 戻りコードに関する簡略説明を表示します。
html
Db2 ZRC 戻りコードに関する簡略説明を HTML 形式で表示します。

このオプションを指定すると、他のすべてのオプションは無視され、出力はディスプレイに送られます。

-ecfid ecfId
数値 ecfId から抽出した関数情報を表示します。 このオプションを指定した場合、 他のすべてのオプションは無視されます。
-h | -help | ?
ヘルプ情報を表示します。 このオプションを指定すると、他のすべてのオプションは無視され、 ヘルプ情報だけが表示されます。 1 つ以上のコマンド・パラメーター (複数の場合はコンマで区切る) を含むオプション・リスト optionList が省略されると、使用できるすべてのオプションのリストが簡単な説明とともに表示されます。 optionList に指定された各オプションについては、 さらに詳細な情報と使用例が表示されます。 optionList 引数の代わりに以下のスイッチの 1 つを使用することによって、ツールおよびその使用法の詳細が表示されるようにヘルプ出力を変更できます。
brief
すべてのオプションのヘルプ情報を表示します。例は表示しません。
examples
ツールの使用に役立ついくつかの標準的な例を表示します。
tutorial
高度なフィーチャーを説明する例を表示します。
notes
使用上の注意と制限を表示します。
all
すべてのオプションに関する完全な情報と、各オプションの使用例を表示します。
-lastlines number-of-lines
db2diag ログ・ファイルの最後から指定された行数を、表示およびフィルターに掛けます。 このパラメーターを指定すると、db2diag log ファイルごとに指定された行数を取得できるかどうか検査されます。 ログ・ファイル内にある行数が、指定されたレコード数より少ない場合、db2diag コマンドはファイル内にある全行を処理します。 分割診断データ・ディレクトリー・パスを使用している場合、それぞれのパスの db2diag ログ・ファイルごとに、ファイルの最後から指定された行数が戻されます。

さまざまな状況下で db2diag コマンドを使用する方法を示す例を以下にリストします。
  • 診断データ・ディレクトリー・パスにあるすべての db2diag ログ・ファイルをマージするには、以下のコマンドを入力します。
    db2diag -merge
    診断データ・ディレクトリー・パスが複数のデータベース・パーティションに従って分割されている場合、このコマンドは現在のホストのすべてのデータベース・パーティションからの db2diag ログ・ファイルをマージします。 診断データディレクトリパスが分割されない場合、-mergeオプションが指定されていないかのように、単一の診断ログファイルがコマンドによって処理されます。
  • この例では、次のコマンドを使用してdiagpathデータベース・マネージャー構成パラメーターを設定することにより、デフォルトの診断データ・ディレクトリー・パスが物理ホストおよびデータベース・パーティションに従って分割されます。
    db2 update dbm cfg using diagpath '"$h$n"'
    この例は、すべての診断ログからすべてのレコードの出力を取得し、bowerhorton2つのホストのそれぞれにある3つのデータベースパーティションから診断ログファイルをマージする方法を示しています。 以下に示すのは、6 つの 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
    6 つの db2diag ログ・ファイルすべてのレコードを出力するには、次のコマンドを実行します。
    db2diag -global
    各ホスト bower および horton 上の 3 つのデータベース・パーティションすべてからの診断データ・ディレクトリー・パスにある 6 つの 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
  • 3 日以内にログに記録された重大エラーを表示するには、以下のコマンドを入力します。
    db2diag -gi "level=severe" -H 3d
  • 関数名 フィールドの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
  • デフォルト設定を使用して db2diag を Perl スクリプトから呼び出すには、次のように入力します。
    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 行に含まれているレコードのうち、Level=Error のレコードをすべて表示するには、以下のようにします。

    db2diag -g level=Error -lastlines 100

使用上の注意

  • 各オプションは一度だけ指定できます。 オプションは任意の順番で指定でき、オプションのパラメーターを指定することができます。 パラメーターの短縮名を結合することはできません。 例えば、-leではなく、-l -eを使用します。
  • デフォルトでは、db2diag は現行ディレクトリーで db2diag ログ・ファイルを探します。 ファイルが見つからない場合、diagpath 構成パラメーターに設定されたディレクトリーは次に検索されます。 そこでも db2diag ログ・ファイルが検出されない場合、db2diag はエラーを戻し、終了します。
  • フィルター操作オプションとフォーマット設定オプションを単一のコマンド行に組み合わせると、 パイプを使用した複雑な検索を実行できます。 書式設定オプション-fmt-strict-cbe-verboseは、すべてのフィルタリングが実行された後にのみ使われ、ユーザー定義または省略フィールドではなく、標準フィールドを持つ元のログメッセージのみがフィルタリングされるように設置しなければなりません。 パイプを使う時、-を使う必要はありません。
  • パイプが使用され、コマンド行に 1 つ以上のファイル名が指定されている場合、 - が指定されているかどうかに応じて db2diag 入力の処理方法が異なります。 -を省略すると、指定ファイルから入力が取得されます。 対照的に、-オプションを指定すると、ファイル名 (コマンド行にある場合でも) は無視され、端末からの入力が使用されます。 パイプが使用され、ファイル名が指定されない場合、 db2diag の入力は、コマンド行に - が指定されるかどうかに関係なく、同じ方法で処理されます。
  • -exist オプションは、パターンに一致しないすべてのレコードが (適切なフィールドを含んでいるかどうかに関係なく) 出力される場合に、反転一致検索のデフォルト db2diag の動作をオーバーライドします。 -existオプションを指定すると、請求フィールドを含むレコードだけが処理、出力されます。
  • -fmt(format)オプションが指定されない場合、すべてのメッセージ(フィルター処理されているかどうかに関係なく)は、診断ログファイルに書き込まれたとおりに正確に出力されます。 出力レコード・フォーマットは、-strict-cbe-verbose オプションを使用して変更できます。
  • -fmtオプションは、-strict-cbe-verboseオプションをオーバーライドします。
  • -cbe オプションが指定され、db2diag ログ・ファイルが元のコンピューターからネットワーク上で転送された場合、いくつかの制限が適用されます。 db2diag ツールは、Db2 とコンピューター・ホスト名に関する情報をローカルで収集します。そのため、ローカル・システムの Db2 のバージョンおよびソースまたは報告機能 componentID の位置フィールドは、元のコンピューターで使用された対応する値と異なる可能性があります。
  • スクリプトで db2diag を使用する場合は、 -readfile オプションを指定することをお勧めします。 これで、端末入力を無視して、ファイルから読み取るようにします。
  • 通常、終了状況は次のとおりです。0一致が検出された場合、および1一致するものが見つからなかった場合。 終了状況は次のとおりです。2入力データおよびパターンに構文エラーがある場合、入力ファイルがアクセス不能である場合、またはその他のエラーが検出された場合。
  • Db2 Text Search の結果として発生する重大エラーは、db2diag ログ・ファイルのログに記録されています。
  • 循環 db2diag ログ・ファイルを読み取ってフィルター処理するためにこのツールを使用する場合 (diagsize データベース構成パラメーターが非ゼロの場合)、すべての循環診断ログ・ファイル (最大 10 個の一連のファイル) が読み取られてフィルター処理されます。
  • リストアの進行中にデータベースに接続しようとすると、db2diag.log にエラー・メッセージが書き込まれます。 リストア・コマンドが成功していれば、そのようなエラー・メッセージは無視できます。