20.1.1 障害が発生したときにHiRDB管理者がすること
障害が発生したときにHiRDB管理者がすることについて説明します。
(1) HiRDB管理者がすること
障害が発生した場合,HiRDB管理者は次に示すことをしてください。
-
出力されたメッセージを確認してください。そして,マニュアル「HiRDB メッセージ」を参照して,障害の原因を調べてください。
-
$PDDIR/spool及び$PDDIR/tmp下にトラブルシュート情報が出力されます。HiRDB管理者はpdinfogetコマンドを実行して,このトラブルシュート情報のバックアップを取得してください。pdinfogetコマンドでは,障害原因の切り分けに必要な情報をまとめた初期情報ファイルと,障害原因の切り分け後,さらに詳細な調査に必要な情報をまとめた詳細情報ファイルを出力できます。
- 備考
-
-
サポートサービスを利用して障害対策をする場合に必要となる情報を「障害調査のために必要な情報」にまとめました。HiRDB管理者(システム管理者)は必ず「障害調査のために必要な情報」を参照してください。
-
障害時の運用で,よくある質問をQ&Aにまとめました。障害時のQ&Aについては,「障害に関する質問」を参照してください。
-
(2) pdinfogetコマンドの実行方法
pdinfogetコマンドを実行すると,pdinfogetコマンドを実行したサーバマシンのディレクトリ下にトラブルシュート情報のバックアップが取得されます。
なお,pdinfogetコマンドを実行するには,環境変数PDDIR及びPDCONFPATHが設定されている必要があります。設定されていることを確認してください。
次に示す手順に従ってpdinfogetコマンドを実行してください。
- 〈手順〉
-
-
pdinfogetコマンドを実行するサーバマシンに,トラブルシュート情報を格納するだけのディスク容量があるかどうかを確認してください。pdinfoget -mコマンドで,取得する障害情報に必要な容量を見積もることができます。
-
pdinfogetコマンドを実行するサーバマシンに,トラブルシュート情報を格納するディレクトリを作成してください。※
-
pdinfogetコマンドを実行します。2.で用意したディレクトリを,pdinfogetコマンドのオプションに指定してください。
-
トラブルシュート情報が不要になったら,pdcspoolコマンドでトラブルシュート情報を削除してください。残しておくとディスク容量の不足原因となります。
- 注※
-
既にディレクトリがある場合は,そのディレクトリ下に次に示すディレクトリがあるかどうかを確認してください。次に示すディレクトリがあると,pdinfogetコマンドを実行したときにエラーとなります。
出力先ディレクトリ
出力先ディレクトリ下にあるとエラーになるディレクトリ
初期情報ファイル出力先ディレクトリ
CLTDIR
PDDIR
spool
conf
.dbenv
pdistup
OSFILE
SYSLOG
COREINF
詳細情報ファイル出力先ディレクトリ
PDDIR
spool
tmp
CLTDIR
この場合,次のどちらかの対処をしてから再度実行してください。
-
初期情報ファイル出力先ディレクトリ又は詳細情報ファイル出力先ディレクトリに別のディレクトリを指定する
-
指定したディレクトリ内の情報が不要な場合,すべて削除する
-
-
(3) 不要なトラブルシュート情報の削除
サーバプロセスの強制終了,又はクライアントの強制終了時などに,HiRDBは$PDDIR/spool下にトラブルシュート情報を出力します。また,コマンド又はユティリティを[Ctrl+C]キーを押すなどして途中終了させると,$PDDIR/tmp下にコマンド又はユティリティが出力した作業用一時ファイルが削除されずに残ります。このトラブルシュート情報及び作業用一時ファイルを残しておくと,HiRDB運用ディレクトリがあるディスクの容量を圧迫する原因になります。HiRDB運用ディレクトリがあるディスクの容量が不足するとHiRDBが異常終了することがあるため,HiRDBは次に示すファイルを定期的に削除します。
-
トラブルシュート情報ファイル($PDDIR/spool下のファイル)
-
作業用一時ファイル($PDDIR/tmp下のファイル)
通常は24時間ごとに削除します。この削除間隔をpd_spool_cleanup_intervalオペランドで変更できます。また,pd_spool_cleanup_interval_levelオペランドで何日より前に出力されたファイルだけを削除するという指定ができます。
このほかにも,トラブルシュート情報($PDDIR/spool下のファイル)を一括して削除する方法があります。
-
pdcspoolコマンドでトラブルシュート情報ファイルを削除できます。作業用一時ファイル($PDDIR/tmp下のファイル)も削除できます。
-
HiRDBの開始時に自動的にトラブルシュート情報ファイルを削除します。pd_spool_cleanupオペランドでトラブルシュート情報ファイルを削除するかどうかを指定します。このオペランドを省略した場合,ファイルを削除します。また,pd_spool_cleanup_levelオペランドで何日より前に出力されたトラブルシュート情報ファイルだけを削除するという指定ができます。
- 参考
-
pdcspoolコマンドのオプション,pd_spool_cleanup_level,又はpd_spool_cleanup_interval_levelオペランドの指定で,削除するトラブルシュート情報を選択できます。
- 注意事項
-
HiRDB管理者以外のユーザが実行したコマンド又はユティリティによって出力されたトラブルシュート情報ファイルは削除されないことがあります。この場合,トラブルシュート情報ファイルの削除権限を持つユーザがOSのrmコマンドなどでファイルを削除してください。
(4) トラブルシュート情報の出力量の削減
次に示すオペランドを指定すると,トラブルシュート情報の出力量を削減できます。必要に応じてこれらのオペランドを指定してください。
-
pd_cancel_dump:トラブルシュート情報を出力するかどうかを指定します。
-
pd_client_waittime_over_abort:トランザクションの実行中にクライアントの最大待ち時間(クライアント環境定義のPDCWAITTIMEオペランドの値)を超えた場合にトラブルシュート情報を出力するかどうかを指定します。
-
pd_debug_info_netstat:サーバプロセスの異常終了,又はHiRDB(ユニット)が異常終了したときに取得するトラブルシュート情報中に,ネットワーク情報を取得するかどうかを指定します。
-
pd_dump_suppress_watch_time:トラブルシュート情報の再出力を抑止する時間を指定します。