pdinfoget障害情報の取得と容量見積もり

機能

HiRDBシステムで障害が発生した場合,障害の原因を調査するために障害情報の取得,及び取得する情報の容量見積もりをします。

障害情報取得
HiRDBで障害が発生した場合,pdinfogetコマンドを実行することで,コマンドを実行したホストのHiRDBやOSの障害情報を取得します。取得した情報は,初期情報ファイル又は詳細情報ファイルに出力し,実行状況を実行ログに出力します。
障害情報容量見積もり
障害情報を取得する場合,障害情報の出力先に十分なディスクの空き容量がないと,必要な障害情報が取得できない,指定したディスクの構成によってはディスク容量を圧迫してシステムの性能に影響を及ぼすなどのおそれがあります。これを防ぐために,事前に取得する障害情報に必要な容量をメガバイト単位で見積もります。ただし,ここで表示する値は,障害情報の取得実行中に必要なディスク容量の最大値であり,取得後の障害情報の容量とは異なります。

実行者

HiRDB管理者が実行できます。なお,HiRDBが出力する情報ファイルやOSの情報ファイルへの参照権限が必要です。

形式

オプション

初期情報ファイル(障害原因の切り分けに必要な情報をまとめたファイル)を出力する既存のディレクトリ名を絶対パスで指定します。指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。

初期情報ファイル出力先ディレクトリには,初期情報ファイルと実行ログが出力されます。初期情報ファイルはアーカイブファイルであり,複数のファイルが格納されています。それぞれのファイル名を次に示します。

初期情報ファイル:pdinfoget_ホスト名称_init_日時.tar
実行ログ:pdinfoget_comlog_日時
注※
日時は「MMDDhhmmss」(MM:月,DD:日,hh:時,mm:分,ss:秒)です。

初期情報ファイルに取得される障害情報については,表2-8を参照してください。

詳細情報ファイル(障害原因の切り分け後,さらに詳細な調査に必要な情報をまとめたファイル)を出力する既存のディレクトリ名を絶対パスで指定します。指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。

詳細情報ファイルはアーカイブファイルであり,複数のファイルが格納されています。詳細情報ファイル名を次に示します。

詳細情報ファイル名:pdinfoget_ホスト名称_detail_日時.tar
注※
日時は「MMDDhhmmss」(MM:月,DD:日,hh:時,mm:分,ss:秒)です。

詳細情報ファイルに取得される障害情報については,表2-8を参照してください。

作業用の一時ファイルを格納する領域として,既存のディレクトリ名を絶対パスで指定します。指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。

このオプションを省略した場合,次に示すディレクトリが仮定されます。

-wオプションの指定システム定義のpd_tmp_directoryオペランドの指定
ありなし
環境変数TMPDIRの指定
ありなし
あり-wオプションに指定したディレクトリ
なしpd_tmp_directoryに指定したディレクトリTMPDIRに指定したディレクトリ/tmpディレクトリ
注※ コマンド実行環境の環境変数の指定

指定したディレクトリ下に,作業用ディレクトリ「pdinfoget_work_日時」を作成し,そこにpdinfogetコマンドが使用する作業用の一時ファイルを格納します。ただし,既に「pdinfoget_work_日時」ディレクトリが存在する場合は,エラー終了します。

pdinfogetがデフォルトで取得すると設定しているsyslogfileと異なるsyslogfileを取得する必要がある場合,ファイル名を絶対パスで指定します。

pdinfogetがデフォルトで取得するsyslogfileを次に示します。

プラットフォームデフォルトで取得するファイル
HP-UX/var/adm/syslog/syslog.log
AIX/tmp/syslog.out
Solaris/var/log/syslog
Linux/var/log/mesages

-sオプションで取得するファイルを指定する必要があると考えられるのは,次のような場合です。

取得する障害情報に必要な容量の見積もり値を出力する場合に指定します。見積もり値は標準出力に次の形式で出力されます。

ファイルの種類表示形式(単位:メガバイト)
初期情報ファイルinit_directory = xxx Mbyte
詳細情報ファイルdetail_directory = yyyy Mbyte

(凡例)xxx,yyyy:数値

-sオプションを指定して障害情報を取得する場合,それらの容量も見積もり値に含めるため,-sオプションを同時に指定する必要があります。なお,-s以外のオプションが同時に指定されている場合は,エラー終了します。

表2-8 pdinfogetコマンドで取得する障害情報一覧

取得する情報項目取得の有無初期情報詳細情報
HiRDBコマンドHiRDBの状態を知るため,HiRDBコマンドを実行して取得した情報ユニット,及び内部コンポーネントの状態×
サーバプロセスの状態×
HiRDBサーバのスケジュール状態×
HiRDBサーバの設定情報×
ユニット内のHiRDBサーバの状態×
実行中トランザクション情報×
ユーザ識別子情報×
排他情報×
排他制御用プール使用状況×
内部ロック情報×
セマフォ情報×
メッセージキュー情報×
ユニット及びサーバの状態×
共用メモリ情報×
HiRDBのバージョン情報×
サーバプロセスの通信制御情報×
グローバルバッファの使用情報×
RDエリアの状態表示×
SQLオブジェクト情報×
リアルタイムSANレプリケーションの情報×
系切り替え機能の情報×
HiRDB情報ファイルHiRDBが参照する定義や,結果として出力したファイル$PDDIR/spool下の全ディレクトリとファイル×
$PDDIR/spool下のファイルコマンドログファイル×
メッセージログファイル×
エラーログファイル×
障害時スナップ情報ファイル×
アボート情報ファイル×
cwaitover情報ファイル×
システム定義情報(conf/*)×
簡易セットアップツール情報(pdistup/*)bin×××
conf×××
ini×××
sample×
tmp×
spool×
pdi_log.txt×
HiRDBデータベース環境情報($PDDIR/.dbenv/*)×
HiRDB内部用ワークディレクトリ下($PDDIR/tmp/*)×
クライアントトレース情報($PDCLTPATH下のファイル)SQLトレース情報※1※1
エラーログファイル×
pdess*ファイル×
UAP統計情報×
OSコマンドOS下の状況を知るため,コマンドを実行して取得した情報プロセス情報×
ネットワークステータス情報×
ディスク情報×
プロセス間通信機能のステータス情報×
CPU利用率,及びディスク状況×
プロセスのCPU稼働及びメモリ状態×
仮想メモリ状態×
カーネルパラメタ×
ホスト名称×
OS情報ファイルOSが参照する定義や,結果として出力したファイルOSのバージョン情報×
マシン情報×
プロセッサ情報×
メモリ実装情報×
環境変数情報×
ネットワーク情報×
ネットワークステータス情報※2×
DISK情報※2×
syslogfile×
バックトレース情報×
(凡例)
○:この情報を取得します。
×:この情報を取得しません
注※1
SQLトレース情報(pdsql1.trc及びpdsql2.trc)のファイル容量の合計が100メガバイト以下の場合,初期情報ファイルに出力します。100メガバイトを超える場合,詳細情報ファイルに出力します。
注※2
Linuxの場合だけ取得します。

規則

  1. pdinfogetコマンドを実行するためには,次の環境変数が設定されている必要があります。
    PDDIR
    HiRDB運用ディレクトリを指定します。
    PDCONFPATH
    HiRDBシステム定義ファイルを格納するディレクトリを指定します。指定がない場合は,$PDDIR/confが仮定されます。
  2. 初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリは,同じディレクトリを指定しないでください。同じディレクトリ名を指定していると,エラーメッセージを出力して処理を終了します。
  3. 初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリに,次の表に示すディレクトリが既に存在する場合,エラーメッセージを出力して処理を終了します。

    表2-9 出力先ディレクトリ下にあるとエラーになるディレクトリ

    出力先ディレクトリ出力先ディレクトリ下にあるとエラーになるディレクトリ
    初期情報ファイル出力先ディレクトリCLTDIR
    PDDIR
    spool
    conf
    .dbenv
    pdistup
    OSFILE
    SYSLOG
    COREINF
    詳細情報ファイル出力先ディレクトリPDDIR
    spool
    tmp
    CLTDIR
    この場合,次のどちらかの対処をしてから再度実行してください。
    • 初期情報ファイル出力先ディレクトリ又は詳細情報ファイル出力先ディレクトリに別のディレクトリを指定する
    • 指定したディレクトリ内の情報が不要な場合,すべて削除する
  4. pdinfogetコマンド実行中でも,次のメッセージを出力した時点で該当する初期情報ファイルの障害情報は取得を完了しているため,取り出すことができます。詳細情報が多く,取得に時間が掛かる場合は,pdinfogetコマンドが終了する前に初期情報ファイルだけを取り出し,使用できます。

    KFPN10403-I init information file output, file=初期情報ファイルパス名

注意事項

  1. pdinfogetコマンドの結果は,コマンド実行時のリターンコード,又は実行ログ中のエラーメッセージで確認できます。pdinfogetコマンドのリターンコードの意味と対処方法を次に示します。
    リターンコード終了状態意味と対処方法
    0正常終了正常に終了しました。
    4警告終了一部の情報を取得できませんでした。次の原因が考えられます。
    • 取得対象のファイルがありません。
    • 必要な環境変数が正しく設定されていません。
    取得できなかった障害情報が必要な場合,エラーメッセージを参照して,エラーの原因を取り除いてから,コマンドを再度実行するか,個別に取得してください。
    8異常終了エラーが発生したため,処理を打ち切りました。
    1. オプションの指定方法が誤っています。
      オプションを正しく指定して,再度実行してください。
    2. 初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリに同じディレクトリを指定しています。
      出力先ディレクトリには,異なるディレクトリを指定して,再度実行してください。
    3. 初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリのディレクトリ作成に失敗しました。又は,アクセス権限がありません。
      指定する出力先ディレクトリに書き込み権限を付加するか,書き込み権限がある別のディレクトリを指定して,再度実行してください。
    4. 初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリ下に表2-9に示すディレクトリがあります。
      指定したディレクトリの内容を確認し,情報が不要な場合は削除して再度実行してください。情報が必要な場合は別のディレクトリを指定して再度実行してください。
    5. HiRDB運用ディレクトリ($PDDIR)が設定されていません。
      HiRDB運用ディレクトリ($PDDIR)を設定して,再度実行してください。
    12割り込み(シグナル発生)による終了割り込み(シグナル発生)によって処理を打ち切りました。
  2. 初期情報ファイル及び詳細情報ファイルの出力先には,十分なディスク容量を用意する必要があります。特に,HiRDBの稼働中に,障害情報の出力先ディレクトリに$PDDIR下のディレクトリを指定してpdinfogetコマンドを実行すると,容量不足のためHiRDBが異常終了することがあるため,注意してください。