2.43.1 pdinfogetの形式と規則
(1) 機能
HiRDBシステムで障害が発生した場合,障害の原因を調査するために障害情報の取得,及び取得する情報の容量見積もりをします。
- 障害情報取得
-
HiRDBで障害が発生した場合,pdinfogetコマンドを実行することで,コマンドを実行したホストのHiRDBやOSの障害情報を取得します。取得した情報は,初期情報ファイル又は詳細情報ファイルに出力し,実行状況を実行ログに出力します。
- 障害情報容量見積もり
-
障害情報を取得する場合,障害情報の出力先に十分なディスクの空き容量がないと,必要な障害情報が取得できない,指定したディスクの構成によってはディスク容量を圧迫してシステムの性能に影響を及ぼすなどのおそれがあります。これを防ぐために,事前に取得する障害情報に必要な容量をメガバイト単位で見積もります。ただし,ここで表示する値は,障害情報の取得実行中に必要なディスク容量の最大値であり,取得後の障害情報の容量とは異なります。
(2) 実行者
HiRDB管理者が実行できます。なお,HiRDBが出力する情報ファイルやOSの情報ファイルへの参照権限が必要です。
(3) 形式
(a) 障害情報取得
pdinfoget -e 初期情報ファイル出力先ディレクトリ名 -d 詳細情報ファイル出力先ディレクトリ名 〔-w ワークディレクトリ名〕 〔-n〕 〔-s syslogfile名〕
(b) 障害情報容量見積もり
pdinfoget -m 〔-n〕 〔-s syslogfile名〕
(4) オプション
(a) -e 初期情報ファイル出力先ディレクトリ名
初期情報ファイル(障害原因の切り分けに必要な情報をまとめたファイル)を出力する既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。
- ディレクトリ名の長さ(単位:バイト)
-
OS上のパス名の上限値−初期情報ファイル名(最大:66)
指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。
初期情報ファイル出力先ディレクトリには,初期情報ファイルと実行ログが出力されます。初期情報ファイルはアーカイブファイルであり,複数のファイルが格納されています。それぞれのファイル名を次に示します。
- 初期情報ファイル:pdinfoget_ホスト名称_init_日時.tar※
-
ホスト名称の長さが32バイト以上の場合,先頭から32バイト分をファイル名とします。
- 実行ログ:pdinfoget_comlog_日時※,
-
- 注※
-
日時は「MMDDhhmmss」(MM:月,DD:日,hh:時,mm:分,ss:秒)です。
ファイルの容量が2ギガバイトを超える場合,ファイルを複数に分割して出力します。このとき,ファイル名の末尾に「.」及び連番「.aa,.ab,.ac,.ad,.ae,……」が付加されます。弊社問い合わせ窓口にすべてのファイルを送付してください。
初期情報ファイルに取得される障害情報については,表「pdinfogetコマンドで取得する障害情報一覧」を参照してください。
(b) -d 詳細情報ファイル出力先ディレクトリ名
詳細情報ファイル(障害原因の切り分け後,さらに詳細な調査に必要な情報をまとめたファイル)を出力する既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。
- ディレクトリ名の長さ(単位:バイト)
-
OS上のパス名の上限値−詳細情報ファイル名(最大68)
指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。
詳細情報ファイルはアーカイブファイルであり,複数のファイルが格納されています。詳細情報ファイル名を次に示します。
- 詳細情報ファイル名:pdinfoget_ホスト名称_detail_日時.tar※
-
ホスト名称の長さが32バイト以上の場合,先頭から32バイト分をファイル名とします。
- 注※
-
日時は「MMDDhhmmss」(MM:月,DD:日,hh:時,mm:分,ss:秒)です。
ファイルの容量が2ギガバイトを超える場合,ファイルを複数に分割して出力します。このとき,ファイル名の末尾に「.」及び連番「.aa,.ab,.ac,.ad,.ae,……」が付加されます。弊社問い合わせ窓口にすべてのファイルを送付してください。
詳細情報ファイルに取得される障害情報については,表「pdinfogetコマンドで取得する障害情報一覧」を参照してください。
(c) -w ワークディレクトリ名
pdinfogetは障害情報を取得した後,HiRDB・OSコマンドを実行して障害情報をアーカイブ,又は圧縮します。このとき,一時的に作成する作業用のファイルを格納する領域として,既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。
- ディレクトリ名の長さ(単位:バイト)
-
OS上のパス名の上限値−作業用のファイル名(最大53)
指定したディレクトリが存在しない,又は書き込み権限がない場合は,エラーメッセージを出力して処理を打ち切ります。
作業用のファイルは,指定したディレクトリ下にワークディレクトリ「pdinfoget_work_日時」を作成し,そこに格納します。既に「pdinfoget_work_日時」ディレクトリが存在する場合は,エラー終了します。
このオプションを省略した場合,次に示すディレクトリが仮定されます。
-wオプションの指定 |
システム定義のpd_tmp_directoryオペランドの指定 |
||
---|---|---|---|
あり |
なし |
||
環境変数TMPDIR※の指定 |
|||
あり |
なし |
||
あり |
-wオプションに指定したディレクトリ |
||
なし |
pd_tmp_directoryに指定したディレクトリ |
TMPDIRに指定したディレクトリ |
/tmpディレクトリ |
注※ コマンド実行環境の環境変数の指定
これらのファイルは,処理の終了時に削除されます。
ただし,処理中にエラーが発生した場合,ファイルが削除されないことがあります。この場合は,ファイルを手動で削除する必要があります。
(d) -s syslogfile名
pdinfogetがデフォルトで取得すると設定しているsyslogfileと異なるsyslogfileを取得する必要がある場合,ファイル名を絶対パスで指定します。
pdinfogetがデフォルトで取得するsyslogfileを次に示します。
プラットフォーム |
デフォルトで取得するファイル |
---|---|
HP-UX |
/var/adm/syslog/syslog.log |
AIX |
/tmp/syslog.out |
Linux |
/var/log/messages |
-sオプションで取得するファイルを指定する必要があると考えられるのは,次のような場合です。
-
pdinfogetを実行する時期が遅く,syslogfileのスワップが行われ,障害が発生した時間帯と,デフォルトで取得対象としているsyslogfileの時間帯が異なっている場合
この場合,障害が発生した時間帯と一致するログを持つファイルを,-sオプションで指定します。
-
/etc/syslog.confの指定で,syslogファイルの出力先を変更している場合
この場合,該当するsyslogfileの名称を指定します。
(e) -m
取得する障害情報に必要な容量の見積もり値を出力する場合に指定します。見積もり値は標準出力に次の形式で出力されます。
ファイルの種類 |
表示形式(単位:メガバイト) |
---|---|
初期情報ファイル |
init_directory = xxx Mbyte |
詳細情報ファイル |
detail_directory = yyyy Mbyte |
PRFトレース情報ファイル |
prf_directory = wwww Mbyte※ |
(凡例)xxx,yyyy,zzzz,wwww:数値
- 注※
-
次に該当する場合は,"0 Mbyte"と表示されます。
-
PRFトレース情報ファイルを取得しない場合
-
-sオプションを指定して障害情報を取得する場合,それらの容量も見積もり値に含めるため,-sオプションを同時に指定する必要があります。なお,-s以外のオプションが同時に指定されている場合は,エラー終了します。
(f) -n
PRFトレース情報ファイルの容量の見積もり,取得を行わない場合に指定します。次の場合に指定してください。
-
弊社問い合わせ窓口から指示があった場合(障害の原因調査に支障が出ない場合)
-
PRFトレース情報ファイルを別途取得する場合
取得する情報項目 |
取得の有無 |
初期情報 |
詳細情報 |
|||
---|---|---|---|---|---|---|
HiRDBコマンド |
HiRDBの状態を知るため,HiRDBコマンドを実行して取得した情報 |
ユニット,及び内部コンポーネントの状態 |
○ |
○ |
× |
|
サーバプロセスの状態 |
○ |
○ |
× |
|||
HiRDBサーバのスケジュール状態 |
○ |
○ |
× |
|||
HiRDBサーバの設定情報 |
○ |
○ |
× |
|||
ユニット内のHiRDBサーバの状態 |
○ |
○ |
× |
|||
実行中トランザクション情報 |
○ |
○ |
× |
|||
ユーザ識別子情報 |
○ |
○ |
× |
|||
排他情報 |
○ |
○ |
× |
|||
排他制御用プール使用状況 |
○ |
○ |
× |
|||
内部ロック情報 |
○ |
○ |
× |
|||
セマフォ情報 |
○ |
○ |
× |
|||
メッセージキュー情報 |
○ |
○ |
× |
|||
ユニット及びサーバの状態 |
○ |
○ |
× |
|||
共用メモリ情報 |
○ |
○ |
× |
|||
HiRDBのバージョン情報 |
○ |
○ |
× |
|||
サーバプロセスの通信制御情報 |
○ |
○ |
× |
|||
グローバルバッファの使用情報 |
○ |
○ |
× |
|||
RDエリアの状態表示 |
○ |
○ |
× |
|||
SQLオブジェクト情報 |
○ |
○ |
× |
|||
リアルタイムSANレプリケーションの情報 |
○ |
○ |
× |
|||
系切り替え機能の情報 |
○ |
○ |
× |
|||
HiRDB情報ファイル |
HiRDBが参照する定義や,結果として出力したファイル |
$PDDIR/spool下の全ディレクトリとファイル |
○ |
× |
○ |
|
$PDDIR下の構成情報 |
○ |
○ |
× |
|||
$PDDIR/spool下のファイル |
コマンドログファイル |
○ |
○ |
× |
||
メッセージログファイル |
○ |
○ |
× |
|||
エラーログファイル |
○ |
○ |
× |
|||
障害時スナップ情報ファイル |
○ |
○ |
× |
|||
アボート情報ファイル |
○ |
○ |
× |
|||
cwaitover情報ファイル |
○ |
○ |
× |
|||
PRFトレース情報ファイル |
○ |
× |
○ |
|||
システム定義情報(conf/*,%PDCONFPATH%) |
○ |
○ |
× |
|||
簡易セットアップツール情報(pdistup/*) |
bin |
× |
× |
× |
||
conf |
× |
× |
× |
|||
ini |
× |
× |
× |
|||
sample |
○ |
○ |
× |
|||
tmp |
○ |
○ |
× |
|||
spool |
○ |
○ |
× |
|||
pdi_log.txt |
○ |
○ |
× |
|||
HiRDBデータベース環境情報($PDDIR/.dbenv/*) |
○ |
○ |
× |
|||
HiRDB内部用ワークディレクトリ下($PDDIR/tmp/*) |
○ |
× |
○ |
|||
クライアントトレース情報($PDCLTPATH下のファイル) |
SQLトレース情報 |
○ |
※1 |
※1 |
||
エラーログファイル |
○ |
○ |
× |
|||
pdess*ファイル |
○ |
○ |
× |
|||
UAP統計情報 |
○ |
○ |
× |
|||
PRFトレース情報ファイル(pd_prf_output_directoryオペランドに指定したディレクトリに出力されたファイル) |
○ |
× |
○ |
|||
PRFトレース情報ファイルの構成情報(pd_prf_output_directoryオペランドに指定したディレクトリの構成情報) |
○ |
○ |
× |
|||
OSコマンド |
OS下の状況を知るため,コマンドを実行して取得した情報 |
プロセス情報 |
○ |
○ |
× |
|
ディスク情報 |
○ |
○ |
× |
|||
プロセス間通信機能のステータス情報 |
○ |
○ |
× |
|||
CPU利用率,及びディスク状況 |
○ |
○ |
× |
|||
プロセスのCPU稼働及びメモリ状態 |
○ |
○ |
× |
|||
仮想メモリ状態 |
○ |
○ |
× |
|||
カーネルパラメタ |
○ |
○ |
× |
|||
ホスト名称 |
○ |
○ |
× |
|||
システムリソースの上限情報 |
○ |
○ |
× |
|||
OSのパフォーマンス情報 |
○ |
○ |
× |
|||
OS情報ファイル |
OSが参照する定義や,結果として出力したファイル |
OSのバージョン情報 |
○ |
○ |
× |
|
マシン情報 |
○ |
○ |
× |
|||
プロセッサ情報 |
○ |
○ |
× |
|||
メモリ実装情報 |
○ |
○ |
× |
|||
環境変数情報 |
○ |
○ |
× |
|||
ネットワーク情報 |
○ |
○ |
× |
|||
ネットワークステータス情報 |
※2 |
○ |
× |
|||
DISK情報 |
※2 |
○ |
× |
|||
syslogfile |
○ |
○ |
× |
|||
バックトレース情報 |
○ |
○ |
× |
- (凡例)
-
○:この情報を取得します。
×:この情報を取得しません
- 注※1
-
SQLトレース情報(pdsql1.trc,pdsql2.trc,pd2sql1.trc,及びpd2sql2.trc)のファイル容量の合計が100メガバイト以下の場合,初期情報ファイルに出力します。100メガバイトを超える場合,詳細情報ファイルに出力します。
- 注※2
-
Linuxの場合だけ取得します。
(5) 規則
-
pdinfogetコマンドを実行するためには,次の環境変数が設定されている必要があります。
- PDDIR
-
HiRDB運用ディレクトリを指定します。
- PDCONFPATH
-
HiRDBシステム定義ファイルを格納するディレクトリを指定します。指定がない場合は,$PDDIR/confが仮定されます。
なお,ルートディレクトリ(/)を指定した場合は,KFPN10433-Wメッセージが出力されます。このとき,pdinfogetコマンドのリターンコードに4が返されます。
-
pdinfogetコマンドは,HiRDBの稼働に関係なく実行できます。
-
初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリは,同じディレクトリを指定しないでください。同じディレクトリ名を指定していると,エラーメッセージを出力して処理を終了します。
-
ディレクトリ名を指定するオプションで,上限値を超えた長さのディレクトリ名を指定すると,ファイルやディレクトリの作成又はコピーでエラーが発生します。このとき,pdinfogetコマンドのリターンコードに4又は8が返されます。
-
初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリに,次の表に示すディレクトリが既に存在する場合,エラーメッセージを出力して処理を終了します。
表2‒11 出力先ディレクトリ下にあるとエラーになるディレクトリ 出力先ディレクトリ
出力先ディレクトリ下にあるとエラーになるディレクトリ
初期情報ファイル出力先ディレクトリ
CLTDIR
PDDIR
spool
conf
.dbenv
pdistup
OSFILE
SYSLOG
COREINF
PRF
詳細情報ファイル出力先ディレクトリ
PDDIR
spool
tmp
CLTDIR
PRF
この場合,次のどちらかの対処をしてから再度実行してください。
-
初期情報ファイル出力先ディレクトリ又は詳細情報ファイル出力先ディレクトリに別のディレクトリを指定する
-
指定したディレクトリ内の情報が不要な場合,すべて削除する
-
-
pdinfogetコマンド実行中でも,メッセージを出力した時点で該当する初期情報ファイルの障害情報は取得を完了しているため,取り出すことができます。詳細情報が多く,取得に時間が掛かる場合は,pdinfogetコマンドが終了する前に初期情報ファイルだけを取り出し,使用できます。
KFPN10403-I init information file output, file=初期情報ファイルパス名
(6) 注意事項
-
pdinfogetコマンドの結果は,コマンド実行時のリターンコード,又は実行ログ中のエラーメッセージで確認できます。pdinfogetコマンドのリターンコードの意味と対処方法を次に示します。
リターンコード
終了状態
意味と対処方法
0
正常終了
正常に終了しました。
なお,KFPN10451-Iが出力されている場合,障害情報のアーカイブ,又は圧縮が完了していません。
- 障害情報が取得済みのとき
-
そのまま障害情報として取得してください。
- 障害情報が取得されていないとき
-
障害情報を出力先ディレクトリにコピーします。なお,コピー中にエラーが発生したときは,実行ログやコンソールに出力されたエラーメッセージを参照して,エラーの原因を取り除いてから,コマンドを再度実行するか,個別に取得してください。
4
警告終了
-
障害情報取得の場合
一部の情報を取得できませんでした。次の原因が考えられます。
・取得対象のファイルがありません。
・必要な環境変数が正しく設定されていません。
取得できなかった障害情報が必要な場合,実行ログやコンソールに出力されたエラーメッセージを参照して,エラーの原因を取り除いてから,コマンドを再度実行するか,個別に取得してください。
-
障害情報容量見積もりの場合
-mオプションを指定して,障害情報容量見積もりを出力するときに,エラーが発生しました。
-
%PDCONFPATH%にルートディレクトリを指定している場合
処理を続行します。HiRDBのシステム定義情報以外の障害情報は取得済みのため,%PDCONFPATH%下のシステム定義情報を取得してください。
8
異常終了
エラーが発生したため,処理を打ち切りました。
-
オプションの指定方法が誤っています。
オプションを正しく指定して,再度実行してください。
-
初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリに同じディレクトリを指定しています。
出力先ディレクトリには,異なるディレクトリを指定して,再度実行してください。
-
初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリのディレクトリ作成に失敗しました。又は,アクセス権限がありません。
指定する出力先ディレクトリに書き込み権限を付加するか,書き込み権限がある別のディレクトリを指定して,再度実行してください。
-
初期情報ファイル出力先ディレクトリ,又は詳細情報ファイル出力先ディレクトリ下に表「出力先ディレクトリ下にあるとエラーになるディレクトリ」に示すディレクトリがあります。
指定したディレクトリの内容を確認し,情報が不要な場合は削除して再度実行してください。情報が必要な場合は別のディレクトリを指定して再度実行してください。
-
HiRDB運用ディレクトリ($PDDIR)が設定されていません。
HiRDB運用ディレクトリ($PDDIR)を設定して,再度実行してください。
12
割り込み(シグナル発生)による終了
割り込み(シグナル発生)によって処理を打ち切りました。
-
初期情報ファイル及び詳細情報ファイルの出力先には,十分なディスク容量を用意する必要があります。特に,HiRDBの稼働中に,障害情報の出力先ディレクトリに$PDDIR下のディレクトリを指定してpdinfogetコマンドを実行すると,容量不足のためHiRDBが異常終了することがあるため,注意してください。なお,障害情報取得時に初期情報ファイル,又は詳細情報ファイルの出力先の容量が見積もりより少ない場合は,KFPN00407-Wメッセージを出力します。容量不足が発生して圧縮が行われなかった場合,圧縮前のファイルを取得してください。メッセージに出力した空き容量を確保できる出力先がほかにある場合は,障害情報の出力先を変更して,再実行してください。
-
pdinfogetコマンド実行中,アーカイブ及び圧縮対象となるファイルの容量とファイル数をKFPN00451-Iメッセージに出力します。ファイルの容量,ファイル数が多い場合は,処理時間が長くなります。