診断ログファイルとは
トラブルシューティングのために必要なイベントやエラーに関する情報が記録されるファイルです。IBMサポートが主に利用するものと位置づけられていますが、管理通知ログファイルよりも詳細な情報が記録されており、検索のためのコマンドインターフェースも提供されているため、DBAにとっても有用なログです。
ここでは診断ログファイルの参照方法や設定について解説します。
診断ログファイルの参照
以下のコマンドで診断ログファイルの内容を参照できます。
$ db2diag
db2diagコマンドのオプションにより検索条件を指定することもできます。以下によく使うオプションとその使用例を挙げておきます。各オプションは組み合わせて使用することが出来ます(AND検索)。
オプション | 機能 | 例 |
---|---|---|
-l | 重大度の指定(複数指定可) | db2diag -l Info,Warning,Error,Severe,Critical,Event |
-e | エラーコードの指定(複数指定可) | db2diag -e 911,913 |
-t | 開始時刻・終了時刻の指定(一方のみでも可) | db2diag -t 2017-11-10:2017-11-10-20.30.00.000000 |
db2diag -t 2017-11-10: | ||
db2diag -t :2017-11-10-20.30.00.000000 | ||
-H | 指定範囲での最新のログの出力 | db2diag -H 1M |
db2diag -H 2d | ||
db2diag -H 6h | ||
db2diag -H 15m | ||
-g | 各種項目でのフィルタリング | db2diag -g AUTHID=SVC34 |
db2diag -g DB=SAMPLE,MESSAGE:=ADM1823E |
-gオプションでのフィルタリングには様々なパターンが用意されているので、マニュアルを確認してみてください。
出力されるログの各項目の解説はについては、こちらを参考に。
診断ログファイルのアーカイブ
診断ログファイルは放っておくとサイズが増え続けていくため、定期的なアーカイブが必要です。
$ db2diag -A パス名
アーカイブされたログファイルの内容は、以下のようにdb2diagコマンドの入力に指定することで検索出来ます。
$ db2diag アーカイブファイル名 各種オプション
診断ログファイルの出力先
診断ログの出力先は、DBマネージャ構成パラメータDIAGPATHにより設定されます。したがって、インスタンスレベルでの設定となります。また、DIAGPATHに出力できなかった場合の代わりの出力先をALT_DIAGPATHに設定することもできます。
出力先の確認
$ db2 "get dbm cfg" | grep DIAGPATH
デフォルトでは$INSTHOME/sqllib/db2dump
が指定されています。
出力先の変更
$ db2 "update dbm cfg using DIAGPATH パス名"
通知レベル
診断ログの通知レベルは、DBマネージャ構成パラメータDIAGLEVELにより設定されます。DIAGLEVELには0から4までの値を設定可能で、数字が大きいほど詳細な情報が記録されるようになります。
通知レベルの確認
$ db2 "get dbm cfg" | grep DIAGLEVEL
デフォルトは3となっています。
通知レベルの変更
$ db2 "update dbm cfg using DIAGLEVEL 3"
参考資料
- IBM Knowledge Center
- DB2 for Linux UNIX and Windows 11.1.0