なぜdb2diag.logの圧縮が必要になるのか
Db2の調査では、まず確認するログが db2diag.log です。
特に以下のような場面ではログ量が急増します。
・エラー発生時
・性能問題の発生時
・トランザクション異常時
通常時は問題なくても、障害時には一気にサイズが増え、
・数GB単位になる
・そのままでは扱いづらい
という状況になります。
さらに実務では、
・LinuxやAIX上のDb2サーバ
・Windowsの作業端末
という構成が多く、ログを転送して解析するケースが一般的です。
このとき、
「圧縮してから転送する」ことが前提になります。
zip形式を使う理由(Windows前提の調査環境)
圧縮形式はいくつかありますが、調査用途ではzipが最も扱いやすい形式です。
理由は以下です。
・Windowsで標準展開できる
・追加ツールが不要
・そのまま解析に使える
さらに、db2diag.logはテキストログのため圧縮率が非常に高くなります。
実務では98〜99%程度まで圧縮されるケースもあるため、
・転送時間の短縮
・ディスク使用量の削減
という効果が大きいです。
Db2環境にあるjarコマンドを使う
Linuxでzip圧縮というと zip コマンドを使うことが多いですが、
環境によってはインストールされていない場合があります。
一方でDb2環境には、Javaが同梱されており、
jarコマンドが標準で利用可能です。
これを使うことで、
・追加インストール不要
・制約環境でも対応可能
というメリットがあります。
実行手順(db2diag.logの圧縮)
まず、db2diag.logの格納ディレクトリへ移動します。
cd ~db2inst1/sqllib/db2dump
次に、jarコマンドでzip圧縮します。(Linuxの場合)
/opt/ibm/db2/V12.1/java/jdk64/bin/jar cvMf db2diag.zip db2diag.log
これで db2diag.zip が作成されます。
作成したzipファイルは、そのままWindowsに転送して展開できます。
なお、AIXだとディレクトリパスの「ibm」は「IBM」なのでご注意ください。
/opt/IBM/db2/V12.1/java/jdk64/bin/jar cvMf db2diag.zip db2diag.log
jarコマンドのオプション解説
今回使用しているオプションは以下の通りです。
| オプション | 内容 |
|---|---|
| c | 新規アーカイブを作成 |
| v | 処理内容を表示 |
| M | マニフェストファイルを作成しない |
| f | 出力ファイル名を指定 |
このコマンドは、
・zip形式でアーカイブを作成
・処理ログを表示
・不要なメタ情報を除外
・ファイル名を指定
という動作になります。
特に M は重要です。
これを付けない場合、
・マニフェスト情報が追加される
・ログ圧縮用途としては不要なデータが含まれる
ため、付与しておくのが実務的です。
実務でよくある使い方
この方法は、以下のような流れで使われます。
・障害発生
・db2diag.logを確認
・サイズが大きいため圧縮
・Windows端末へ転送
・解析ツールやエディタで調査
特にログサイズが大きい場合、
・そのまま転送すると時間がかかる
・転送自体が失敗する
といった問題を避けるために有効です。
まとめ
db2diag.logは、障害時に急激にサイズが増えるログです。
調査時には、
・圧縮してから転送する
・Windowsで扱いやすい形式にする
ことが重要になります。
その手段として、
・Db2に同梱されているjarコマンドを使う
・zip形式で圧縮する
という方法は、環境制約がある場合でも確実に使える実用的な手段です。
今回はdb2diag.logにスポットを当ててご紹介しましたが、もちろん他のログやディレクトリでも問題ありません。
シンプルですが、現場では有効なTipsです。


コメント