7.2. インデックスサーバーのクラッシュ回復をトリガーする
hdbindexserver プロセスのクラッシュをシミュレートして、ChkSrv HA/DR プロバイダーの機能をテストします。これはプライマリーサイトまたはセカンダリーサイトで実行できます。正確な回復アクションは全体的な設定によって異なります。次の手順は、フック設定で action_on_lost = stop を使用した場合のアクティビティーを示しています。
前提条件
-
ChkSrvHA/DR プロバイダーを設定している。このオプションフックを設定していない場合は、このテストをスキップしてください。 - HANA インスタンスに健全な HANA システムレプリケーションがある。
- クラスターのステータスに障害がない。
手順
このテストを実行するインスタンスでユーザー
<sid>admとして、別のターミナルを使用して HANA プロセスを監視します。rh1adm $ watch "sapcontrol -nr ${TINSTANCE} -function GetProcessList | column -s ',' -t"同じ HANA インスタンスの別のターミナルで、
hdbindexserverプロセスを強制終了します。rh1adm $ kill <PID>
検証
ユーザー
<sid>admとして、同じインスタンス上の専用の HANA ネームサーバートレースログを確認し、イベントと関連アクションを特定します。rh1adm $ cdtrace; less nameserver_chksrv.trc ... ChkSrv version 1.001.1. Method srServiceStateChanged method called. ChkSrv srServiceStateChanged method called with Dict={'hostname': 'dc2hana2', 'service_name': 'indexserver', 'service_port': '30203', 'service_status': 'stopping', 'service_previous_status': 'yes', 'timestamp': '2025-09-15T15:07:09.353198+00:00', 'daemon_status': 'yes', 'database_id': '3', 'database_name': 'RH1', 'database_status': 'yes', 'details': ''} ChkSrv srServiceStateChanged method called with SAPSYSTEMNAME=RH1 srv:indexserver-30203-stopping-yes db:RH1-3-yes daem:yes LOST: indexserver event looks like a lost indexserver (status=stopping) LOST: stop instance. action_on_lost=stop ...rootユーザーとして、任意のクラスターノードのクラスターステータスでリソースの障害情報を確認します。[root]# pcs status --full ... Failed Resource Actions: * rsc_SAPHanaCon_RH1_HDB02_monitor_61000 on dc2hana1 'not running' (7): call=26, status='complete', ... ...rootユーザーとして、テストノード (例:dc2hana2) 上の関連するクラスターアクションのシステムログを確認します。[root]# grep rsc_SAPHanaCon_RH1_HDB02 /var/log/messages ... Sep 15 15:08:17 dc2hana1 pacemaker-controld[17045]: notice: Result of monitor operation for rsc_SAPHanaCon_RH1_HDB02 on dc2hana1: not running Sep 15 15:08:17 dc2hana1 pacemaker-controld[17045]: notice: rsc_SAPHanaCon_RH1_HDB02_monitor_61000@dc2hana1 output [ 10 ] Sep 15 15:08:17 dc2hana1 pacemaker-controld[17045]: notice: Transition 32 action 29 (rsc_SAPHanaCon_RH1_HDB02_monitor_61000 on dc2hana1): expected 'ok' but got 'not running' Sep 15 15:08:17 dc2hana1 pacemaker-attrd[17043]: notice: Setting last-failure-rsc_SAPHanaCon_RH1_HDB02#monitor_61000[dc2hana1] in instance_attributes: (unset) -> 1757948897 Sep 15 15:08:17 dc2hana1 pacemaker-attrd[17043]: notice: Setting fail-count-rsc_SAPHanaCon_RH1_HDB02#monitor_61000[dc2hana1] in instance_attributes: (unset) -> 1 Sep 15 15:08:17 dc2hana1 pacemaker-schedulerd[17044]: warning: Unexpected result (not running) was recorded for monitor of rsc_SAPHanaCon_RH1_HDB02:2 on dc2hana1 at Sep 15 15:08:17 2025 Sep 15 15:08:17 dc2hana1 pacemaker-schedulerd[17044]: notice: Actions: Recover rsc_SAPHanaCon_RH1_HDB02:2 ( Unpromoted dc2hana1 ) Sep 15 15:08:17 dc2hana1 pacemaker-schedulerd[17044]: warning: Unexpected result (not running) was recorded for monitor of rsc_SAPHanaCon_RH1_HDB02:2 on dc2hana1 at Sep 15 15:08:17 2025 Sep 15 15:08:17 dc2hana1 pacemaker-schedulerd[17044]: notice: Actions: Recover rsc_SAPHanaCon_RH1_HDB02:2 ( Unpromoted dc2hana1 ) Sep 15 15:08:17 dc2hana1 pacemaker-controld[17045]: notice: Initiating stop operation rsc_SAPHanaCon_RH1_HDB02_stop_0 locally on dc2hana1 Sep 15 15:08:17 dc2hana1 pacemaker-controld[17045]: notice: Requesting local execution of stop operation for rsc_SAPHanaCon_RH1_HDB02 on dc2hana1 ...次の
SAPHanaControllerリソースモニターは、予期せず停止した HANA インスタンスを障害として報告し、設定に従って回復手順を開始します。PREFER_SITE_TAKEOVERが有効になっていて、プライマリーインスタンスでテストを実行した場合、セカンダリーサイトへの HANA テイクオーバーがトリガーされます。
次のステップ
- 必要な場合は、設定に応じて、停止した元のプライマリー HANA サイトを手動で再登録し、HANA ツールを使用して起動します。詳細は、テイクオーバー後に以前のプライマリー HANA サイトをセカンダリー HANA サイトとして登録する を参照してください。
- 以前のテストから存在する可能性のあるクラスターからの障害通知をすべてクリアします。詳細は、失敗履歴のクリーンアップ を参照してください。