PRIMECLUSTER システムで異常が発生した場合、“PRIMECLUSTER 導入運用手引書”の“故障リソースの検出”の手順に従い、異常が発生したリソースを切り分け、リソースに応じた対処を実施します。
hvhdb コマンドを登録した Cmdline リソースで異常が発生した場合、PRIMECLUSTER のログを参照し、SAP HANA のコマンドが異常となっていないかを確認します。SAP HANA のコマンドで異常が発生した場合、そのコマンドが出力したメッセージやコマンドの復帰値を元に、SAP HANA のマニュアルを参照して対処できます。
ログは、RMS の環境変数 RELIANT_LOG_PATH に指定されたディレクトリに保存されています。デフォルトは /var/opt/SMAWRrms/log です。
ログの名称 | ログファイル名 | ログの内容 |
---|---|---|
hvhdb チェックスクリプトログ | ファイル名の末尾は _hvhdb-m.log | SAP HANA インスタンスやシステムレプリケーションの監視処理で採取されるログです。新たなリソース状態と判断するきっかけとなった処理のログが出力されます。 |
アプリケーションログ | ファイル名に小文字のクラスタアプリケーション名が含まれ、かつ、拡張子が .log | クラスタアプリケーションの起動や停止、切替え処理中に実行されたコマンドのログが格納されています。 |
SAP HANA のコマンドが出力したメッセージとコマンドの復帰値は、以下の手順で確認します。
hvhdb コマンドを登録した Cmdline リソースが異常となった時刻を、“PRIMECLUSTER 導入運用手引書”の“故障リソースの検出”の手順で確認します。
異常が発生したノードへログインします。
PRIMECLUSTER のログ格納ディレクトリへカレントディレクトリを移動します。
# cd /var/opt/SMAWRrms/log
ls -l コマンドでログのファイル名を確認し、以下の 2 つのログが存在することを確認します。
(1) hvhdb チェックスクリプトログ (ファイル名末尾が~_hvhdb-m.log のファイル)
(2) アプリケーションログ (ファイル名が <クラスタアプリケーション名>.log )
例:クラスタアプリケーションが HANAPRD の場合のログ格納ディレクトリの ls コマンドの結果
# ls -l total 80 drwxr-xr-x 2 root root 4096 Jan 14 21:26 2016-01-11_19:47:49 drwxr-xr-x 2 root root 4096 Jan 14 21:56 2016-01-14_21:26:20 drwxr-xr-x 2 root root 4096 Jan 16 06:32 2016-01-14_21:56:12 drwxr-xr-x 2 root root 4096 Jan 17 12:53 2016-01-16_06:32:14 -rw-r--r-- 1 root root 10348 Jan 17 15:29 ManageProgram001_Cmd_HANAPRD_hvhdb-m.log ...(1) -rw-r--r-- 1 root root 24486 Jan 17 13:29 bmlog -r--r--r-- 1 root root 6305 Apr 15 2015 errorcodes.txt -r--r--r-- 1 root root 36313 Jan 17 15:28 hanaprd.log ...(2) -rw-r--r-- 1 root root 542 Jan 17 14:00 hvcleanupnfs.log -rw-r--r-- 1 root root 960 Jan 17 12:53 hvdet_system.g0log -rw-r--r-- 1 root root 952 Jan 17 12:53 hvdet_system.g1log -rw-r--r-- 1 root root 518 Jan 17 12:53 hvdet_system.g2log -rw-r--r-- 1 root root 98 Jan 17 12:53 rcstartlog -rw-r--r-- 1 root root 10348 Jan 17 13:29 switchlog -rw-r--r-- 1 root root 0 Jan 17 12:53 tracelog
hvhdb チェックスクリプトログとアプリケーションログを確認します。
事象発生時の時刻を参考に、ログの以下のメッセージと出力時刻から、実行されたコマンドの処理結果を確認します。
NOTICE: Invoking <実行コマンド> (1) NOTICE: <実行コマンド> exited with the code <復帰値>. (2) または (2) ERROR: <実行コマンド> exited with the code <復帰値>. (2)
(1) は、<実行コマンド> を実行する直前の時刻です。また、<実行コマンド> に出力された文字列が実行したコマンドです。
(2) は、(1) で実行された <実行コマンド> が終了した時点で出力されるログです。<復帰値> は <実行コマンド> が終了したときの復帰値です。
(2) のメッセージは、復帰値 0 となることが期待される場合は ERROR、0 以外の復帰値も想定される場合に NOTICE として出力されます。
(1) と (2) の間に出力されているメッセージは、<実行コマンド> が出力したメッセージです。
hvhdb チェックスクリプトログの例
以下のログの例では、2016-01-17 12:21:39.939 に起動された「su - prdadm -c "sapcontrol -nr 00 -function GetProcessList"」というコマンドが、同日の12:21:39.990に終了コード4で終了したことがわかります。
: ManageProgram001_Cmd_APP1: Detector: 2016-01-17 12:21:39.939: NOTICE: Invoking su - prdadm -c "sapcontrol -nr 00 -function GetProcessList" 17.01.2016 12:21:39 GetProcessList OK name, description, dispstatus, textstatus, starttime, elapsedtime, pid hdbdaemon, HDB Daemon, GRAY, Stopped, , , 9332 ManageProgram001_Cmd_APP1: Detector: 2016-01-17 12:21:39.990: NOTICE: su - prdadm -c "sapcontrol -nr 00 -function GetProcessList" exited with the code 4. The next state is Offline.: :
アプリケーションログの例
以下のログでは、クラスタアプリケーションが Standby になる際に実行したコマンド「su - prdadm -c "sapcontrol -nr 00 -function WaitforStarted 3600 10"」が復帰値 2 で終了している例です。sapcontrol コマンドが”FAIL: process hdbdaemon HDB Daemon not running”と出力していることもログから判断できます。
: ManageProgram001_Cmd_APP1: Standby: 2016-01-18 09:38:08.453: NOTICE: Invoking su - prdadm -c "sapcontrol -nr 00 -function WaitforStarted 3600 10". 18.01.2016 09:38:28 WaitforStarted FAIL: process hdbdaemon HDB Daemon not running ManageProgram001_Cmd_APP1: Standby: 2016-01-18 09:38:28.522: ERROR: su - prdadm -c "sapcontrol -nr 00 -function WaitforStarted 3600 10" exited with the code 2. :
異常発生時刻のメッセージがログファイル中に見つからない場合、またはファイルがない場合
PRIMECLUSTER のログ格納ディレクトリ配下にある日付時刻を名前とするディレクトリ配下に、事象発生時刻のログが格納されていないかも確認してください。事象発生後、OS を再起動したり RMS を再起動した場合は、RMS 起動時に日付時刻を名前とするサブディレクトリにログが移動されています。