3.9. hdbindexserver プロセス失敗アクション (オプション) に対する SAP HANA srServiceStateChanged() フックの有効化
HANA は、indexserver プロセスの問題を検出すると、SAP HANA に組み込まれている機能を使用して、indexserver プロセスを自動的に停止および再起動することで問題を回復します。
ただし、場合によっては、サービスの "停止" フェーズに非常に長い時間がかかることがあります。その間、システムレプリケーションは同期されなくなる可能性がありますが、HANA は引き続き動作し、新しい接続を受け入れます。最終的に、サービスは停止と再起動のプロセスを完了し、回復します。
データの一貫性にリスクをもたらすこの長時間実行される再起動を待つ代わりに、その間にインスタンスで何か他の障害が発生した場合、ChkSrv.py フックスクリプトが状況に反応し、HANA インスタンスを停止して、より迅速な回復を行うことができます。自動フェイルオーバーが有効になっているセットアップでは、セカンダリーノードが正常な状態であれば、インスタンスが停止するとテイクオーバーが開始します。それ以外の場合、リカバリーはローカルで続行しますが、強制インスタンスの再起動によってリカバリーが高速化されます。
global.ini 設定ファイルで設定していると、SAP HANA はインスタンス内のすべてのイベントに対して ChkSrv.py フックスクリプトを呼び出します。スクリプトはイベントを処理し、イベントの詳細に適用したフィルターの結果に基づいてアクションを実行します。これにより、障害後に HANA によって停止および再起動する HANA indexserver プロセスと、インスタンスのシャットダウンの一環として停止する同じプロセスを区別できます。
実行可能なさまざまなアクションを以下に示します。
- Ignore (無視): このアクションは、解析されたイベントと決定情報を専用のログファイルに書き込むだけなので、フックスクリプトが何を実行するかを確認するのに役立ちます。
-
Stop (停止): このアクションは、
sapcontrolコマンドを通じてインスタンスに対して正常なStopSystemを実行します。 -
Kill (強制終了): このアクションは、設定可能なデフォルトのシグナル 9 を使用して
HDB kill-<signal>コマンドを実行します。
停止アクションと強制終了アクションの両方で HANA インスタンスが停止しますが、最終的には強制終了の方が少し速くなることに注意してください。
この時点で、クラスターは HANA リソースの障害を認識し、設定された方法で対応します。通常はインスタンスを再起動し、有効になっている場合はテイクオーバーも行います。
3.9.1. resource-agents-sap-hana パッケージのバージョンの確認 リンクのコピーリンクがクリップボードにコピーされました!
Pacemaker cluster does not trigger a takeover of HANA System Replication when the hdbindexserver process of the primary HANA instance hangs/crashes に記載されているように、RHEL 9 のバージョンで srServiceStateChanged() フックを有効にするために必要なコンポーネントを提供する正しいバージョンの resource-agents-sap-hana パッケージがインストールされていることを確認してください。
3.9.2. すべての SAP HANA インスタンスで srServiceStateChanged() フックをアクティブ化する リンクのコピーリンクがクリップボードにコピーされました!
srServiceStateChanged() フックをアクティブ化する手順は、すべての HA クラスターノード上の SAP HANA インスタンスごとに実行する必要があります。
各ノードの SAP HANA
global.iniファイルを更新して、(ファイル/hana/shared/RH1/global/hdb/custom/config/global.iniなどの) 両方の SAP HANA インスタンスでフックスクリプトを使用できるようにします。[ha_dr_provider_chksrv] provider = ChkSrv path = /usr/share/SAPHanaSR/srHook execution_order = 2 action_on_lost = stop [trace] ha_dr_saphanasr = info ha_dr_chksrv = infoオプションのパラメーターを以下のように設定します。
-
action_on_lost(デフォルト: ignore) -
stop_timeout(デフォルト: 20) -
kill_signal(デフォルト: 9)
以下は、
action_on_lostで使用可能なオプションの説明です。-
ignore: この機能を有効にしますが、イベントのみをログに記録します。これは、設定された環境でのフックのアクティビティーを監視するのに役立ちます。 -
stop:sapcontrol -nr <nr> -function StopSystemを正常に実行します。 -
kill: 最速の停止のために HDBkill-<signal>を実行します。 -
stop_timeoutは stop および kill アクションのコマンド実行に追加され、kill_signalはHDB kill-<signal>コマンドの一部として kill アクションで使用されることに注意してください。
-
HANA の実行中に
HA/DRプロバイダーを再ロードして、新しいフックをアクティブ化します。[rh1adm]$ hdbnsutil -reloadHADRProviders新しいトレースファイルをチェックしてフックの初期化を確認します。
[rh1adm]$ cdtrace [rh1adm]$ cat nameserver_chksrv.trc