IBM Support

[Db2] インスタンスがハングした時の対処方法と、原因調査に必要な最低限の情報収集方法

Troubleshooting


Problem

データベースへの接続時などに、インスタンスがハングすることがあります。 その際の復旧手順と、原因調査のために必要となる資料の取得方法について説明します。

Symptom

データベースへの接続や SQL の実行がハングすることがあります。

注: ここでは「ハング」として以下のような状態を扱います。

  • Db2 の処理が全て無応答になっている。
  • 既存の接続は使えるようだが、新規の接続を試みると反応がない。
  • 特定の操作 (例えば、プロシージャーや UDF の呼び出し等) を行うとそのセッションは必ず無応答になる。
  • db2stop や db2stop force も応答がない。


以下のような状態は、Db2 の「ハング」とは異なります。

  • ロック待ちになっている。
  • 通常時に比べ非常に遅いが、処理は少しずつ進んでいる。 (処理のスロー・ダウン)
  • ls など OS のコマンドも受け付けなくなっている。 外部から telnet などもできず ping も返らない。 (OS のハングやネットワークの問題等)

Cause

排他制御の競合などにより、Db2 のエージェントなどの EDU がハング状態となっている可能性があります。
ハングの原因は発生状況によって異なりますので、原因の追求のためには発生時に情報を取得して調査する必要があります。

Resolving The Problem

以下の作業は、UNIX/Linux ではインスタンス・オーナーとしてログインして実行してください。
Windows では管理者としてログオンし、 「DB2 コマンド ウィンドウ - 管理者」から実行してください。

  1. 資料の取得
    以下の2つのコマンドを1セットとして、3セット繰り返し実行してください。 (注1)
    1セットごとに1分程度間隔をあけて、2つのコマンドは同時に実行しないでください。
    資料取得コマンド自体が無応答となる場合はそのコマンド実行を中止し、取得可能な資料を収集してください。
    [Linux/UNIX]
    db2pd -eve > db2pd-eve_`date +"%Y%m%d_%H%M%S"`
    db2pd -stack all
    [Windows]
    db2pd -eve > db2pd_eve."%DATE:/=_%_%TIME::=-%"
    db2pd -stack all
    Db2 9.5 以降、db2fodc コマンドで上記の内容を含む包括的なデータを収集できます。ただし資料収集に時間がかかるため、復旧に多少時間 (十数分から数十分) を要してもよい場合は、以下のコマンドをご利用ください。 (注2)
    db2fodc -hang -members all
  2. インスタンスの強制終了
    Db2 10.5 以降、または Db2 10.1 以前でも Enterprise Server Edition 以上の場合 (db2_kill コマンドが実行可能な場合)、以下のコマンドでインスタンスを強制終了してください。
    db2_kill
    Db2 10.1 以前かつ db2_kill コマンドが存在しない場合は、以下のコマンドでインスタンスを強制終了してください。
    db2nkill 0
  3. インスタンスの復旧
    強制終了後のインスタンスの復旧方法については、以下の文書を参照してください。
    DB2 異常終了時の対処方法と、原因調査に必要な最低限の資料収集方法
     
  4. (Windows のみ) トラップ・ファイルのフォーマット
    Windows 環境では db2pd -stack all によるトラップ・ファイルの出力がバイナリ形式のため、以下のコマンドで出力されたトラップ・ファイルをフォーマットしてください。
    db2xprt <トラップ・ファイル名> <フォーマット後のファイル名>
    出力されたトラップ・ファイルを一括でフォーマットする場合、以下のコマンドでフォーマット可能です。
    【Db2 9.1 以前】
    for %i in (*.TRP) do db2xprt %i %~ni.FMT
    【V9.5 以降】
    for %i in (*.trap.bin) do db2xprt %i %~ni.txt
  5. db2support の取得
    以下のコマンドで、ログや環境情報などの必要な資料を収集してください。
    db2pd -stack all や db2fodc コマンドを出力結果も db2support で収集されます。
    db2support <出力先ディレクトリー> -s -d <データベース名> -c -f > db2support.log 2>&1
  6. テクニカル・サポートへの連絡
    原因の調査が必要な場合、IBM テクニカル・サポートに連絡し、出力された db2pd_eve.out と db2support.zip、db2support.log を送付してください。

注1:
db2pd -eve の結果はカレント・ディレクトリーに、db2pd -stack all の結果は DIAGPATH に出力されます。
DIAGPATH に関する詳細は、以下の文書を参照してください。
[Db2] db2diag.log や管理通知ログの出力先 (IM-10-0AC)

注2:
db2fodc コマンド内では OS のトレースも取得されますが、特定の AIX 環境では OS のトレース取得時にハングしてしまう問題 (APPS USING USER TRACE HOOKS FAIL WHEN TRACE IS ENABLED) が発生します。
以下 URL のバージョンごとの情報から、問題が修正された TL をご利用いただいているか、ご確認ください。
なお、-members all オプションは V9.7 FP5 以降で使用可能です。
Known issues for DB2 on AIX 5.2, 5.3, 6.1, and 7.1

関連情報
db2pd - Db2 データベースのモニターおよびトラブルシューティング・コマンド
db2fodc - DB2 First Occurrence Data Collection コマンド
db2xprt - トラップ・ファイルのフォーマット
パスポート・アドバンテージによく寄せられる質問

 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlkAAE","label":"DB2 Tools-\u003Edb2fodc"},{"code":"a8m500000008PlhAAE","label":"DB2 Tools-\u003Edb2pd"},{"code":"a8m500000008PmKAAU","label":"Performance-\u003EHang"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
03 November 2023

UID

swg21503291