問題判別の手引き

エンタープライズ拡張エディションのその他の考慮事項

区画データベース環境の問題を判別し、問題判別を実行するのに、 さらに別の考慮事項が役立つ場合があります。 以下のセクションでこれらの考慮事項を扱います。

初期障害データ捕そく機能

EEE 環境に固有の FFDC についての情報は、以下のとおりです。

EEE 環境で、ご使用の DIAGPATH が NFS にマウントされているか、または共用されている場合で、 選択された診断レベルが高いと、明らかなスローダウンが起きます。 レベル 3 は、この環境で使用される最高のレベルです。 レベル 4 の使用は、以下の場合にのみ考慮できます。

EEE 環境では、すべてのシステムに sqllib ディレクトリーがマウントされているため、 すべての区画またはノードに対して db2diag.log ファイルが 1 つあります。 すべての区画の DIAGPATH データベース・マネージャー構成パラメーターがローカル・パスを指すように変更すると、 各区画に別個の db2diag.log ファイルが保持されるようになります。 こうすると、各 db2diag.log ファイルには、 それぞれの区画ごとのログ情報が入り、それぞれのログ・ファイルは読み取りやすくなります。 ただし、すべての db2diag.log ファイル情報を調べる必要が万一生じた場合には、 すべての区画からすべてのデータを収集して統合するのは難しくなります。

DB2 トレース機能

EEE 環境に固有の DB2 トレース機能についての情報は、以下のとおりです。

EEE 環境では、複数の区画をトレースして、エラーを判別する必要があります。 複数論理ノード (MLN) 環境では、物理ノードにつき 1 つのトレースが必要です。 DB2 トレース機能 (db2trc) を実行する区画またはノードの判別は、 エラーの後に続く SQLCA 結果を使用して実行します。 SQLCA 形式では、SQLERRD(6) はノード番号を表します。

その他のメソッド

db2_call_stack コマンドは、 EEE 環境でのループまたはハングの識別に役立てるために使用できます。 db2_call_stack コマンドは、 db2nodes.cfg ファイルに記録されているすべてのノードのすべての DB2 プロセスに "終了" シグナルを送信します。

ループまたはハングであるか、あるいは作業が進行中であるかを判別するには、 db2_call_stack コマンドを間隔を開けて数回実行する必要があります。 db2_call_stack の詳細については、トラップ・ファイルを参照してください。

DB2MEMDBG レジストリー変数を使用すると、 メモリー・セット、メモリー・プール、およびメモリー・ブロックの割り振りを含む、 メモリー割り振りの追跡ができます。 これは、メモリー破損またはメモリー・リーク状態を識別するために使用できます。 メモリーの破損の例は、次のとおりです。

メモリー・リークの例は、次のとおりです。

このレジストリー変数を使用するプロセスは、以下のとおりです。

  1. (原因と考えられるメモリー問題を追跡して、 DB2 カスタマー・サポートに連絡し、このレジストリー変数で使用できるオプションのセットを尋ねてください。)
  2. db2stop
  3. db2set DB2MEMDBG=<options>
  4. db2start

このプロシージャーの出力は、sqllib ディレクトリーの db2dump に入れられます。 memdbg.log ファイルには、 メモリー・デバッグが使用可能になったすべてのプロセスのログ・エントリーが入ります。 p_<PID>.mem ファイルには、 破壊情報も含む、プロセスごとのメモリー・デバッグ情報が入ります。

LIST APPLICATIONS を使用して問題についてのデータを収集する場合には、 ご使用の EEE 環境にあるすべての区画上でこのコマンドを実行してください。 カタログ・ノードから LIST APPLICATIONS を実行すると、 すべての調整プログラム・ノードについての情報を入手できます。

ご使用のデータベースを再始動しようとする場合には、 必ず最初にカタログ区画だけを再始動してください。 再始動したら、残りのすべての区画の並列再始動を実行してみてください。 並列再始動でも依然としてエラーが発生する場合には、 一度に 1 つずづ区画を再始動してください。

不正状態の際の一般的な指示

ご使用の環境の状況を検査した後に、システムが完全にハングしていることがはっきりした場合には、 注意しながら以下のプロセスを実行することを考慮してください。

  1. db2_kill を使用してデータベースを遮断します。
  2. db2start を使用して、データベース・マネージャー・インスタンスを起動します。
  3. カタログ区画 / ノードで db2 restart database を発行して、データベースを起動するプロセスを開始します。
  4. 他のすべての区画 / ノードで db2 restart database を発行して、データベースを起動するプロセスを完了します。

ご使用の環境の状況を検査して、EEE 環境で作動していないのが 1、2 の区画 / ノードだけであることが分かった場合には、 注意しながら以下のプロセスを実行することを考慮してください。

  1. db2start nodenum n を発行して、ハングしている区画 / ノードを起動します。 このコマンド (ここで、"n" はハングしている区画のノード番号) を繰り返して、すべての区画を起動します。
  2. db2start database を発行して、データベースの起動を完了します。

遮断の階層

注:後者のコマンドを使用してご使用のデータベース環境を遮断する際には、十分に注意してください。 後者のコマンドを使用すると、問題の証拠も除去されてしまい、 DB2 顧客サポートが問題の原因を判別できなくなる可能性があります。 現在の問題を判別しないかぎり、 ご使用の環境で問題を予防するアプローチを実行できる可能性はほとんど、あるいは全くありません。 ご使用の環境で、同じ問題が発生する可能性はそのままになってしまいます。

以下に、ご使用のデータベース環境をシャットダウンするための方法を、 強制力の低いコマンドから高いコマンドの順にリストします。

最も強制力の強いコマンドは、DB2 カスタマー・サポートの指示がある場合以外には使用しないでください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]