説明
ローカルデータベースが sapcontrol Stop/StopWait コマンドで停止された場合、ローカルリカバリーが失敗し、SAP HANA リソース階層のフェイルオーバーが発生する場合がある

問題: ユーザーが sapcontrol ユーティリティーを使用して HDB インスタンスに対して Stop/StopWait 要求を発行すると (これは、ユーザーが「HDB stop」コマンドを発行したときに内部的に使用されるものでもあります)、sapstartsrv はすべてのインスタンスを適切に停止する非同期プロセスを開始します。 データベースが完全にシャットダウンされるか、プロセスがタイムアウトするまで、HANA データベースはプロセスを停止しません。 したがって、sapstartsrv がデータベースを正常にシャットダウンしている間に sapcontrol を介して発行された他のアクションは、すでに進行中の停止アクションと競合し、最終的に失敗してタイムアウトになります。

特に、次の一連のイベントでは、保護されたデータベースに対してローカルリカバリーが有効になっている場合でも、SAP HANA リソース階層のフェイルオーバーが発生する可能性があります。

  1. ユーザーは、「sapcontrol Stop/StopWait」または「HDB stop」コマンドを発行して、プライマリーノード上で実行されている HANA データベースの正常なシャットダウンを開始します。

  2. SAP HANA Recovery Kitの「quickCheck」スクリプトは、少なくとも1つのデータベースプロセスが実行されていないことを検出し、その結果、ローカルでデータベースを再起動しようとします。

  3. SAP HANA Recovery Kitの「recover」スクリプトは、「sapcontrol StartWait」コマンドを発行して、保護された HDB インスタンスの再起動を試みます。

  4. ステップ 1 で発行された「sapcontrol Stop/StopWait」コマンドはまだ HANA データベースプロセスをアクティブに停止しているため、SAP HANA Recovery Kitが発行する「sapcontrol Start」コマンドは失敗してタイムアウトします。

  5. SAP HANA Recovery Kit はローカルでデータベースを再起動できないため、ローカルリカバリーは失敗し、SAP HANAリソース階層はスタンバイサーバーにフェイルオーバーします。

回避策・解決策: 本番前のクラスターテストの一環として、プライマリーデータベースの障害後のローカル復旧をシミュレートするためにデータベースを手動で停止する場合、プライマリーデータベースのクラッシュをより正確にシミュレートするためにデータベースプロセスを強制終了(たとえば ‘HDB kill-9’ など)することを検討してみてください。詳細については SAP HANA リソース階層のテスト を参照してください。

SAP HANA のライセンス名が正しく表示されない

ライセンスが以下のように表示されます。

Unknown (lklce database hana) Eval 13 Mar 2022 (19 days)

フィードバック

フィードバックありがとうございました

このトピックへフィードバック

送信