IBM Support

[Db2] Linux で DB2FODC を設定しているにも関わらず core ファイルが生成されない

Question & Answer


Question

Linux 環境で DB2FODC レジストリー変数を設定しているにも関わらず、core ファイルが生成されません。対応方法を教えてください。

Cause

以下の FAQ を参照し、 Linux で DB2FODC レジストリー変数を正しく設定しているにも関わらず、core ファイルが生成されないことがあります。 カーネル・パラメーターの core_pattern にフルパスで出力先が指定されている場合、DB2FODC の DUMPDIR の指定よりも、core_pattern が優先されます。
  • /etc/sysctl.conf:
    kernel.core_pattern = <core 出力先のフルパス>
フルパス指定ではなく、ファイル名またはテンプレートが指定されている場合、Db2 側の DUMPDIR の指定のディレクトリーに core ファイルが生成されます。
また、指定されたパスに Db2 インスタンス・オーナーが書き込み権限を持っていない場合は、core ファイルを生成しようとして失敗します。

Answer

対応策は下記のとおりです。
  1. a) core_pattern の設定を DB2FODC に一致させる
    例:
    kernel.core_pattern=/db2/opelog/db2dump/DIAG0000/core.%p
    %p は、プロセス ID を示すワイルドカードです。実際のファイル名は Db2 インスタンスのプロセス ID が追加されて "core.12345" (PID が 12345 の場合) のようになります。
    この場合は、db2dump ディレクトリー配下にディレクトリーは自動作成されません。
  2. core_pattern の設定でフルパス指定を行なわず、ファイル名指定にする
    例:
    kernel.core_pattern=core.%p
    この場合、DB2FODC の DUMPDIR 配下にディレクトリーが作成され、その下に core.<PID> というファイル名で core ファイルが出力されます。
  3. core_patten の出力先に権限を追加する
    現在の出力先である /var/crash に対して、Db2 インスタンス・オーナーによる書き込みを許可します。
    例:
    chmod 777 /var/crash
運用上の考慮点
Db2 異常終了時の原因調査で、事象再発時の core ファイルが必要になる場合があります。上記設定により core ファイルが出力される先のファイル・システムには、数 GB の空きが必要になる可能性もあるためご注意ください。

関連情報
Crash on Linux produces no core or truncated core
[Db2] パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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"}],"ARM Case Number":"","Platform":[{"code":"PF016","label":"Linux"}],"Version":"All Versions"}]

Document Information

Modified date:
27 August 2023

UID

swg22000323