IBM Support

[Db2] メンテナンスが必要な Db2 関連のログ・ファイル

Question & Answer


Question

ユーザーによるメンテナンスが必要な Db2 関連のログ・ファイルを教えてください。

Answer

Db2 が生成するログ・ファイルを以下の 3 つのカテゴリーに分けて説明します。
循環するログの定期的なメンテナンスは不要ですが、ログ・サイズの調整が必要な場合があります。
  1. 単調増加する可能性があるログ・ファイル
  2. 指定されたサイズに達すると記録を停止するログ・ファイル
  3. 循環して記録されるログのため、手動でのメンテナンスが不要なログ・ファイル

IBM Docs などの技術文書で、「ログ・ファイル」は多くの場合トランザクション・ログ・ファイルを指します。
本文書ではトランザクション・ログ以外のログも扱うため、「ログ・ファイル」は必ずしもトランザクション・ログでない点に注意してください。

各ファイルのロケーション情報で利用している INSTANCE_DIR、DIAGPATH、DBPATH および DASHOME は以下の表を参照してください。
 
$INSTANCE_DIR UNIX/Linux: <インスタンス・オーナーのホーム・ディレクトリー>/sqllib
Windows: %DB2INSTPROF%\%DB2INSTANCE%
注: DB2INSTPROF および DB2INSTANCE の値は db2set -all で表示できます。
$DIAGPATH データベース・マネージャー構成パラメーターの DIAGPATH の設定有無、Windows の OS によって違いがあります。詳細は以下のページを参照してください。
[Db2] db2diag.log や管理通知ログの出力先
$DBPATH 1. 以下のコマンドを実行して、該当データベースの"ローカル・データベース・ディレクトリーのパス"と"カタログ・データベース・パーティション番号"を確認してください。
db2 list db directory
2.以下のコマンドを実行して、出力された"データベース・ディレクトリー"を確認してください。
db2 list db directory on ["ローカル・データベース・ディレクトリーのパス"]
3. 手順 1.2 で確認した各項目とデータベースが存在している DB2 インスタンス名を組み合わせた以下のパスを、$DBPATH と定義します。
["ローカル・データベース・ディレクトリーのパス"]/[DB2インスタンス名]/NODE000["データベース・パーティション番号"]/["データベース・ディレクトリー"]
V10.1 以降、データベース・ディレクトリー (SQL00001 など) に続いてメンバー固有ディレクトリー (MEMBER0000 など) が付加されます。
注: 活動化しているデータベースのメンバー固有ディレクトリーは list active databases コマンドの結果に出力されます。
データベース・メタ・データは、$DBPATH およびメンバー固有ディレクトリーいずれかに出力されます。
$DASHOME DASHOME は DB2 Administration Server 管理ユーザーのホーム・ディレクトリーです。
Linux/UNIX 版 : DAS インスタンス・オーナーのホーム・ディレクトリー
Windows 版 : DB2INSTPROF/<DAS インスタンス名>

■ 単調増加する可能性があるログ・ファイル
 
トランザクション・ログ (アーカイブ・ロギングの場合)
出力先 アクティブ・ログ・パス:
データベース構成パラメーターの logpath および mirrorlogpath
アーカイブ・ログ・パス:
データベース構成パラメーターの logarchmeth* または userexit で指定されたコピー先
説明 DB2 はデータベースへの変更をトランザクション・ログに記録し、リストアからのロールフォワードやクラッシュ・リカバリーに使用します。
循環ロギングの場合は logprimary+logsecond の数のログで循環しますが、アーカイブ・ロギングの場合は生成されたログをユーザーがメンテナンスする必要があります。
データベース構成パラメーター logarchmeth1 と logarchmeth2 の両方が OFF に設定されている場合、 循環ロギングとなり、それ以外の設定であればアーカイブ・ロギングとなります。
備考 logpath - ログ・ファイルのロケーション構成パラメーター
mirrorlogpath - ミラー・ログ・パス構成パラメーター

logarchmeth1 - 1 次ログ・アーカイブ方式構成パラメーター
logarchmeth2 - 2 次ログ・アーカイブ方式構成パラメーター

logprimary - 1 次ログ・ファイル数構成パラメーター
logsecond - 2 次ログ・ファイル数構成パラメーター
logfilsiz - ログ・ファイルのサイズ構成パラメーター

トランザクション・ログのメンテナンス方法は、以下の文書を参照してください。
[Db2] ログ・ファイルのメンテナンス方法

トランザクション・ログがフルになった場合は、以下の文書を参照してください。
[Db2] トランザクション・ログがフル (SQL0964C) になったときの対応
リカバリー履歴ファイル
出力先 $DBPATH/db2rhist.*
説明 リカバリー履歴ファイルはデータベースごとに作成され、 バックアップ、リストア、表スペースの変更、ログファイルの操作などが記録されます。
定期的にバックアップを取得していない場合、PRUNE HISTORY コマンドで明示的にメンテナンスする必要があります。
どの時点までの情報を保管しておくかは運用に依存しますが、削除可能なタイムスタンプを指定して PRUNE HISTORY コマンドを実行することで、指定した日付よりも古い項目が削除されます。

また、バックアップを定期的に取得している場合は、メンテナンスは不要です。データベース構成パラメーター num_db_backups の設定値の回数に達すると、 リカバリー履歴ファイルで古いバックアップが有効期限切れとマークされます。 有効期限が切れたデータベース・バックアップに関連する表スペース・バックアップおよびロード・コピー・バックアップのリカバリー履歴ファイル項目も有効期限切れとマークされます。次のデータベース・バックアップが行われると、有効期限が切れた項目がリカバリー履歴ファイルから除去されるためです。
備考 回復履歴ファイル
リカバリー履歴ファイルのプルーニング

リカバリー履歴ファイルが肥大化すると、特定のデータベース操作のパフォーマンスに影響を与えます。
[DB2 LUW] データ量が同じでも BACKUP や LOAD の実行時間が長くなる
[DB2 LUW] コミット・アクティブ (Commit Active) によるパフォーマンス遅延の主な原因と対処方法
Db2 診断ログ (db2diag.log)
出力先 $DIAGPATH/db2diag.[n].log
説明 インスタンスで発生するエラーおよび警告に関する診断情報が記録されます。
主に IBM ソフトウェア・サポートがトラブルシューティングの目的で使用します。
備考 Db2 診断 (db2diag) ログ・ファイル

V9.7 以降、DIAGSIZE パラメーターを設定すると、診断ログと管理通知ログは循環して記録されます。
(Windows 版の管理通知ログはイベント・ログに書き込まれるため DIAGSIZEの対象外)
  • db2 update dbm cfg using diagsize <サイズ(MB)>
    db2stop
    db2start

メンテナンスの詳細は以下の FAQ およびマニュアル・ページを参照してください。
[Db2] Db2 診断ログ (db2diag.log) のローテート作業(移動/削除/リネーム)
diagsize - 循環診断ログおよび循環管理通知ログ構成パラメーター
管理通知ログ
出力先 $DIAGPATH/<インスタンス名>.nfy (Linux/UNIX)
Windows アプリケーション・イベントログ (Windows)
説明 主にデータベースおよびシステム管理者がトラブルシューティング目的で使用します。
備考 管理通知ログ

Windows のアプリケーション・イベントログの保持ポリシーの設定により循環して記録させることも可能です。詳細は以下の Microsoft 社の技術情報を確認してください。
ログの保持ポリシーを設定する
DB2 管理サーバー (DAS) 診断ログ
出力先 $DASHOME⁄das⁄dump/db2dasdiag.log (Linux/UNIX)
$DASHOME¥dump\db2dasdiag.log (Windows)
説明 DAS で発生するエラーおよび警告に関する診断情報が記録されます。
備考 First Occurrence Data Capture (FODC)
インスタンス起動 / 終了時のエラーログ
出力先
インスタンス起動時
出力先 : $INSTANCE_DIR/ctrl/db2start.<host>.<タイムスタンプ>.<PID>.errlog (Linux/UNIX)
出力先 : $INSTANCE_DIR\ctrl\db2start.exe.<host>.<タイムスタンプ>.<PID>.errlog (Windows)

インスタンス停止時
出力先 : $INSTANCE_DIR/ctrl/db2stop.<host>.<タイムスタンプ>.<PID>.errlog (Linux/UNIX)
出力先 : $INSTANCE_DIR\ctrl\db2stop.exe.<host>.<タイムスタンプ>.<PID>.errlog (Windows)

注: V9.7 以前はのパスは $INSTANCE_DIR\ctrl でなく $INSTANCE_DIR/log
注:V10.1 以前のログ・ファイル名に <host> はありません。
説明 インスタンス起動時、終了時のエラーログが記録されます。
備考 インスタンスの起動と停止時にエラーがなければ記録されません。
ガバナー・ログ・ファイル
出力先 出力先 : $INSTANCE_DIR/log (Linux/UNIX)
出力先 : $INSTANCE_DIR\log (Windows)
説明 ガバナーは、データベースに対して実行しているアプリケーションの動作をモニターし、 ガバナー構成ファイルで指定した規則に応じてその動作を変更できます。
ガバナー・デーモンは処置を実行する度に、 ログ・ファイルにレコードを書き込みます。
このログは、ガバナーが開始されているときのみ記録されます。ログ・ファイルはガバナー開始時に指定することができます。
備考 ガバナー・ログ・ファイル
ガバナーの開始
注:ワークロード・マネージャーが提供されたことで、Db2 9.7 以降ガバナーは非推奨になっています。
ガバナー・ユーティリティー
Db2 監査ログ
出力先 $INSTANCE_DIR/security/auditdata
監査ログの出力先は、db2audit コマンドの datapath オプションで変更可能です。
監査アーカイブ・ログの出力先は db2audit コマンドの archivepath オプションで変更可能です。
現在設定されている出力先は、db2audit describe コマンドで表示されます。

インスタンスの監査ログは db2audit.instance.log.<パーティション番号>
データベースの監査ログは db2audit.db.<データベース名>.log.<パーティション番号> に出力されます。
説明 監査ログは手動で除去してはいけません。監査ログは db2audit archive コマンドでアーカイブすると切り捨てられます。アーカイブされた監査ログの名前は以下の通りです。
インスタンス:db2audit.instance.log.<パーティション番号>.<アーカイブ時刻>
データベース:db2audit.db.<データベース名>.log.<パーティション番号>.<アーカイブ時刻>

アーカイブされた監査ログから audit extract コマンドなどで監査データを抽出後、アーカイブされた監査ログを OS コマンドで除去できます。

アーカイブされた監査ログから監査レコードを抽出する際に、db2audit の extract file オプションでファイル名を指定できます。指定しない場合には、db2audit.out となります。

Db2 監査機能によって、事前に定義したデータベースのイベントに対して監査証跡を生成し、かつその監査証跡を保存できるようにします。 この機能により生成されたレコードは、監査ログ・ファイルに保持されます。
備考 監査ログの保管と分析
監査ログ・ファイル名
[Db2] Db2 9.5 以降における監査の設定方法
Q キャプチャー・ログ (.QCAP.LOG)
出力先 asnqcap コマンドを実行した際のカレント・ディレクトリー/db2instance.capture_server.capture_schema.QCAP.log

実行時に capture_path を指定した場合、指定パス/db2instance.capture_server.capture_schema.QCAP.log
説明 デフォルト (logreuse=n) では、Q キャプチャー・プログラムはメッセージをログ・ファイルに付加します。これは、Q キャプチャー・プログラムが再始動された後であっても同様に行われます。メッセージの履歴が必要な場合は、デフォルトのままにしておいてください。次のような場合には、Q キャプチャー・プログラムが再始動時にログを削除して再作成するようにさせる (logreuse=y) 必要があります。
  • ログ・ファイルが大きくなったためにログを消去する場合。
  • ログ・ファイルに保管されている履歴が不要な場合。
  • スペースを節約する場合。
備考 N/A
Q アプライ・ログ (.QAPP.LOG)
出力先 asnqapp コマンドを実行した際のカレント・ディレクトリー/db2instance.apply_server.apply_schema.QAPP.log

実行時に apply_path を指定した場合、指定パス/db2instance.apply_server.apply_schema.QAPP.log
説明 デフォルトでは、Q アプライ・プログラムは開始されるたびに、ログ・ファイルにメッセージを追加します (logreuse=n)。Q アプライ・プログラムから発行されたメッセージの履歴を保存する場合は、デフォルトのままにします。以下のような状況では、logreuse=y を使用して、Q アプライ・プログラムが開始時にログを削除し、再作成するようにできます。
  • ログ・ファイルが大きくなったため、ログを消去してスペースを節約する場合。
  • ログ・ファイルに保管されている履歴が不要な場合。
備考 N/A
キャプチャー・ログ (.CAP.LOG)
出力先 asncap コマンドを実行した際のカレント・ディレクトリー/db2instance.capture_server.capture_schema.CAP.log

実行時に capture_path を指定した場合、指定パス/db2instance.capture_server.capture_schema.CAP.log
説明 デフォルト (logreuse=n) では、キャプチャー・プログラムはメッセージをログ・ファイルに付加します。これは、キャプチャー・プログラムが再始動された後であっても同様に行われます。メッセージの履歴が必要な場合は、デフォルトのままにしておいてください。次のような場合には、キャプチャー・プログラムが再始動時にログを削除して再作成するようにさせる (logreuse=y) 必要があります。
  • ログ・ファイルが大きくなったためにログを消去する場合。
  • ログ・ファイルに保管されている履歴が不要な場合。
  • スペースを節約する場合。
備考 N/A
アプライ・ログ (.APP.LOG)
出力先 asnapply コマンドを実行した際のカレント・ディレクトリー/db2instance.control_server.apply_qualifier.APP.log

実行時に apply_path を指定した場合、指定パス/db2instance.control_server.apply_qualifier.APP.log
説明 デフォルトでは、アプライ・プログラムは開始されるたびに、ログ・ファイルにメッセージを追加します (logreuse=n)。アプライ・プログラムから発行されたメッセージの履歴を保存する場合は、デフォルトのままにします。以下のような状況では、logreuse=y を使用して、アプライ・プログラムが開始時にログを削除し、再作成するようにできます。
  • ログ・ファイルが大きくなったため、ログを消去してスペースを節約する場合。
  • ログ・ファイルに保管されている履歴が不要な場合。
備考 N/A
レプリケーション・アラート・モニター
出力先 asnmon コマンド実行時に指定した出力パス
説明 レプリケーション・アラート・モニターのログは、アラート・モニターを使用していなければ生成されないログです。
  • モニター・ログ (ログ・ファイルの命名規則は db2instance.monitor_server.monitor_qualifier.MON.LOG)
  • モニター開始時に asnmon コマンドで debug=yes を指定することによって収集できるトレース情報。

例えば、以下のコマンドは、monitor.trc というファイルにトレース情報を送ります。
  • asnmon monitor_server=mondb monitor_qual=MON1 debug=yes > monitor.trc
備考 Q レプリケーション - トラブルシューティング・データの収集
SQL レプリケーション - キャプチャーの操作パラメーターの説明
SQL レプリケーション - アプライの操作パラメーターの説明
Q レプリケーション - asnqapp パラメーターの説明


■ 指定されたサイズに達すると記録を停止するログ・ファイル
 
ファイル・イベント・モニターのログ・ファイル
出力先 $DBPATH/db2event/<イベント・モニター名>
説明 イベント・モニターによって、データベースの使用中に発生する特定のイベントを記録できます。
イベントの記録先はファイル、パイプ、表などから選択できます。記録先がファイルの場合、指定サイズに達するとイベント・モニターは停止します。
ファイルのサイズは、CREATE EVENTMONITOR ステートメントの MAXFILESIZE オプションで設定できます。
デフォルトの設定は、それぞれ以下のとおりです。
UNIX,Linux - 1000 個の 4K ページ
Windows - 200 個の 4K ページ

また、イベント・モニターの 1 つのイベント・パスで許されるイベント・ファイルの最大数を、MAXFILES で指定することも可能です。
デフォルトではイベント・ファイルの数に制限がない NONE が指定されています。

それぞれ現在の設定値を確認するには、以下のコマンドを実行してください。
  • select EVMONNAME, MAXFILES, MAXFILESIZE from SYSCAT.EVENTMONITORS
備考 イベント・モニターのファイル管理
[DB2 LUW] DB2DETAILDEADLOCK イベント・モニターの再作成方法


■ 循環して記録されるログのため、手動でのメンテナンスが不要なログ・ファイル
 
統計ログ
出力先 $DIAGPATH/events/db2optstats.n.log
説明 統計収集アクティビティをロギングします。デフォルトは合計 100 MB の 5 ファイルで循環します。
合計サイズ、ファイル数、出力先などは DB2_OPTSTATS_LOG レジストリ変数で変更できます。
備考 自動統計収集アクティビティーのロギング
DB2_OPTSTATS_LOG
セルフ・チューニング・メモリー・マネージャー (STMM) ログ
出力先 $DIAGPATH/stmmlog/stmm.n.log
説明 これらのファイルには、STMM によるチューニングに関するログが出力されます。
10 MB のファイルが 5 つ割り当てられ、循環して記録されます。
ファイルのサイズや個数を調整するパラメーターはありません。
備考 N/A
同期点マネージャー (SPM) ログ
出力先 $INSTANCE_DIR/spmlog 以下
説明 データベース構成パラメーター spm_name が NULL でない場合、インスタンス起動時に同期点マネージャー (SPM) が起動します。
SPM は DB2 LUW と、DB2 for z または i との二相コミットを行う場合に使用され、二相トランザクション・マネージャーのログとして SPM ログが記録されます。

SPM ログは spm_log_path に spm_log_file_sz のサイズのファイルが 3 つ作成され、循環ログとして使用されます。
ログファイルの個数は調整できません。
備考 spm_log_path - 同期点マネージャー・ログ・ファイル・パス構成パラメーター
spm_log_file_sz - 同期点マネージャー・ログ・ファイル・サイズ構成パラメーター
Db2 イベント・ログ
出力先 $DIAGPATH/db2eventlog.<パーティション番号>

<パーティション番号>は、db2nodes.cfg 内の dbpartitionnum の値を意味します。
ノード構成ファイルの作成
説明 このファイルには、イベント・ログ、エージェントの生成や割り込みなどの内部動作が記録されます。
6MB の固定サイズで循環するため、メンテナンスの必要はありません。
備考 FODC の一部として収集されたデータ
GPFS ログ (pureScale クラスターのみ)
出力先 /var/adm/ras/mmfs.log.<date>.<node>
説明 Spectrum Scale 起動時の都度生成されます。起動時に 10 日以上アクセスのないログは削除されます。
備考 GPFS logs
Tivoli System Automation for Multiplatforms (TSAMP) および RSCT スプール・ログ (pureScale および db2haicu による HA を構成している場合)
出力先 /var/ct/*
説明 TSAMP および RSCT のトレース・スプーリングの設定により、TSAMP および RSCT デーモンのトレース・ファイルが出力されます。スプール設定によりサイズの上限で自動削除されます。
備考 Steps for setting up Trace Spooling for RSCT/TSAMP Daemons
Pacemaker および Corosync ログ (Pacemaker によるクラスターを構成している場合)
出力先 /var/log/pacemaker/pacemaker.log
/var/log/cluster/corosync.log
説明 logrotate によってログ・ファイルが 100MB に達するか 1週間経過するかのいずれか早い方でローテーションされます。古いログは圧縮されて 99 個まで保管されます。
ローテーションの設定を変更する場合は /etc/logrotate.d/pacemaker または /etc/logrotate.d/corosync を変更します。
備考 RedHat:RHEL8 ログ・ローテーション


運用上の考慮点
正常稼動時は生成されませんが、データベース・マネージャーのクラッシュなど、問題が起きた場合に DIAGPATH 以下に次のログ・ファイルが生成されることがあります。
特にシステム・コアファイルは非常に大きくなる可能性があるので、問題が起きた場合は確認する必要があります。 関連情報
First Occurrence Data Capture 情報
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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":"a8m500000008PkgAAE","label":"Database Objects"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
13 October 2023

UID

swg21632267