テストシナリオ

SAP HANA Recovery Kitの動作を理解するには、次のテストを実行してください。テストを実行する前に、次の前提条件を満たす必要があります。

  • LifeKeeperおよびSAP HANAデータベースは、SIOSおよびSAPが提供するインストール手順に従ってインストールおよび設定する必要があります。
  • 有効なレプリケーションモード(sync、syncmem、またはasync)およびオペレーションモード(delta_datashipping、logreplay、またはlogreplay_readaccess)のいずれかを使用してセカンダリレプリケーションサイトを登録し、クラスター内のすべてのサーバーでSAP HANAシステムレプリケーションを有効にしてアクティブにする必要があります。詳細については、 SAP HANAシステムレプリケーションの構成 を参照してください。
  • SAP HANAデータベースに関連付けられた切り替え可能なIPアドレスをLifeKeeper IPリソースで管理する場合、IPリソースに対するSAP HANAリソースの依存関係が存在する必要があります。詳細については、 SAP HANAリソース階層の作成 のステップ7を参照してください。

SAPホストエージェントのリカバリーのテスト

以下を使用して、SAPホストエージェントプロセスのステータスとプロセスIDを決定します。

# /usr/sap/hostctrl/exe/saphostexec -status

saphostexec running (pid = 3818)

sapstartsrv running (pid = 3867)

saposcol running (pid = 3965)

出力にリストされているプロセスの1つを手動で強制終了するか、

/usr/sap/hostctrl/exe/saphostexec -stop

を実行して、SAPホストエージェントの機能を低下させます。するとSAP HANA Recovery KitはSAPホストエージェントが正しく機能していないことを認識し、そのノードで再起動します。この動作は、次のコマンドでLifeKeeperログを監視することで確認できます。

tail -f /var/log/lifekeeper.log

このリカバリープロセス中、SAP HANAリソースの状態は変化しません。正常に回復すると、SAPホストエージェントは再び完全に機能するようになります。Recovery KitがSAPホストエージェントを再起動できない場合、HANAデータベースとリソースは現在の状態のままになります。するとSAPホストエージェントが再度チェックされ、可能であれば後で再起動されます。

SAP HANAインスタンスのsapstartsrvのリカバリーのテスト

SAP HANAインスタンスのSAP Start Service(sapstartsrv)のリカバリーをテストするには、サービスを停止する必要があります。sapstartsrvを停止する方法の1つに、sapcontrol StopService webmethodの実行があります。

su - <sid>adm -c "sapcontrol -nr <Inst#> -function StopService"

<sid> はHANAインストール時に使用した小文字のSAPシステムID、<Inst#> はHDBインスタンス番号です。また、sapstartsrvプロセスを直接強制終了することもできます。いずれの場合も、sapstartsrvはSAP HANA Recovery Kitによって再起動されます。sapstartsrvが正常に再起動できる限り、リソースの状態は変わりません。

セカンダリSAP HANA DB(レプリケーションターゲット)のリカバリーのテスト

セカンダリデータベースインスタンス(レプリケーションターゲット)に障害が発生した場合、またはセカンダリレプリケーションサイトがSAP HANAシステムレプリケーションで登録解除された場合、Recovery Kitは以前のレプリケーションモードとオペレーションードでセカンダリサイトを再登録し、セカンダリデータベースインスタンスを再起動します。

このような障害を引き起こすには、セカンダリレプリケーションサイトで次のコマンドのいずれかを実行します。

su - <sid>adm -c "sapcontrol -nr <Inst#> -function Stop"

su - <sid>adm -c "hdbnsutil -sr_unregister"

この動作は、ログファイル /var/log/lifekeeper.log を監視することで確認できます。リカバリー後、セカンダリレプリケーションサイトで次のコマンドを実行することにより、データベースインスタンスとSAP HANAシステムレプリケーションの状態をテストできます。

su - <sid>adm -c "sapcontrol -nr <Inst#> -function GetProcessList"

su - <sid>adm -c "hdbnsutil -sr_state"

セカンダリデータベースインスタンスをRecovery Kitで起動できない場合、SAP HANAリソースには、対応するノードで障害(OSF)のフラグが立てられます。

起動に失敗した原因を管理者が修正すると、SAP HANA Recovery Kitは後続のquickCheckサイクルでデータベースインスタンスを起動します。データベースインスタンスが正常に起動すると、対応するノードでリソースの状態がスタンバイに更新されます。

プライマリSAP HANA DBのリカバリーのテスト

プライマリデータベースインスタンス(レプリケーションソース)に障害が発生した場合、プライマリノード上のデータベースインスタンスのレプリケーションモードが決定されます。レプリケーションモードがプライマリに設定されている場合、データベースインスタンスが再び起動されます。モードがプライマリに設定されていない場合、Recovery KitはLifeKeeperの外部でレプリケーションモードが変更されたことを示す警告をログに出力し、問題が解決するまでSAP HANAリソースの監視をすべて一時停止します。後者の場合、HANAリソース階層を正しいプライマリシステムでIn Serviceにするには、手動による操作が必要です。この場合の動作は、LifeKeeper GUIで確認できます。この場合の動作は、LifeKeeper GUIで確認できます。LifeKeeperGUIには、プライマリノードのリソースの状態が「Active – HSR Disabled」、「Active – Unknown Repl Mode」、または「Active – Secondar」と表示されます。あるいは、ログファイル /var/log/lifekeeper.log でも確認できます。

プライマリレプリケーションサイトで次のコマンドを実行すると、プライマリデータベースインスタンスの障害を引き起こすことができます。

su - <sid>adm -c "sapcontrol -nr <Inst#> -function Stop"

リカバリー後、データベースとレプリケーションの状態は次のコマンドを使用してテストできます。

su - <sid>adm -c "sapcontrol -nr <Inst#> -function GetProcessList"

su - <sid>adm -c "hdbnsutil -sr_state"

そのノードのプライマリデータベースインスタンスをRecovery Kitで起動できない場合、LifeKeeperはセカンダリノードへの階層全体のフェイルオーバーを開始します。このノードでHANA Recovery KitはSAP HANAシステムレプリケーションのテイクオーバーを実行し、以前のセカンダリノードがレプリケーションの新しいプライマリノードになります。LifeKeeperは、以前のレプリケーションモードとオペレーションモードを使用して、障害のあるノードをセカンダリレプリケーションサイトとして再登録しようとします。これが成功すると、セカンダリデータベースも再起動されます。セカンダリノードをセカンダリレプリケーションサイトとして正常に登録できない場合、またはセカンダリノードでデータベースを正常に再起動できない場合、対応するノードでHANAリソースに障害(OSF)のフラグが立てられます。障害の原因を除去するには、通常この時点で手動による操作が必要です。プライマリデータベースインスタンスのフェイルオーバーに失敗した場合、リソースに障害(OSF)のフラグが立てられ、管理者が手動でIn Service操作を実行するまでこの状態が継続します。

セカンダリノードのマシン障害のテスト (reboot -f, power off)

エラーが原因でセカンダリノードに障害が発生した場合、リソースはプライマリノードでアクティブ(ISP)のままですが、SAP HANAシステムレプリケーションは中断されます。セカンダリノードが再起動され、LifeKeeperがアクティブになると、セカンダリデータベースインスタンスがレプリケーションターゲットとして自動的に再起動されます。

プライマリノードのマシン障害のテスト (reboot -f, power off)

エラーが原因でプライマリノードに障害が発生した場合、HANAリソース階層のセカンダリノードへのフェイルオーバーが開始されます。SAP HANAシステムレプリケーションのテイクオーバーがセカンダリノードで実行され、以前のセカンダリレプリケーションサイトが新しいプライマリレプリケーションサイトになります。障害が発生したノードが再起動され、LifeKeeperがアクティブになると、ノードはセカンダリレプリケーションサイトとして登録され、データベースインスタンスがレプリケーションターゲットとして自動的に再起動されます。

フィードバック

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

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

送信