Db2のdb2diag.logをzip圧縮する方法|Linux/AIXからWindowsへログ転送する際のTips

Db2

なぜ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です。

コメント

タイトルとURLをコピーしました